python类可以访问自己对象的属性吗?
我试图创建一个蜘蛛而不指定特定的url。我想创建spider对象,从对象中提取url,并将其用作我的python类可以访问自己对象的属性吗?,python,scrapy,web-crawler,Python,Scrapy,Web Crawler,我试图创建一个蜘蛛而不指定特定的url。我想创建spider对象,从对象中提取url,并将其用作我的允许的\u域和开始\u url,换句话说,我想做一些类似的事情(注意MySpiderObj…我只是将该表达式放在那里,因为我想从类的对象中提取信息MySpider: from scrapy.settings import default_settings from selenium import webdriver from urlparse import urlparse import csv
允许的\u域
和开始\u url
,换句话说,我想做一些类似的事情(注意MySpiderObj
…我只是将该表达式放在那里,因为我想从类的对象中提取信息MySpider
:
from scrapy.settings import default_settings
from selenium import webdriver
from urlparse import urlparse
import csv
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from scrapy.spider import BaseSpider
from scrapy import log
default_settings.DEPTH_LIMIT = 3
class MySpider(CrawlSpider):
def __init__(self,url):
self.x=url
name = "my_spider"
allowed_domains = [MySpiderObj.x]
start_urls = [MySpiderObj.x]
rules = [Rule(SgmlLinkExtractor(), callback='parse_item', follow=True)]
def parse_item(self,response):
self.log('A response from %s just arrived!' % response.url)
我怎样才能正确地完成它呢?谢谢你你应该将所有的相互依赖的初始化移到构造函数中,并将
MySpiderObj
更改为self
你想要类的工厂吗?然后你应该使用函数生成一个具有所需属性的类
但在您的情况下,正如其他人提到的,您应该能够创建允许的\u域
和开始\u URL
属性实例属性:
类MySpider(爬行蜘蛛):
name=“我的蜘蛛”
还要注意方法——它可能更适合您的需要
def __init__(self, params):
self.allowed_domains = [extract_domains(params)]
self.start_urls = [extract_start_urls(params)]