Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python类可以访问自己对象的属性吗?_Python_Scrapy_Web Crawler - Fatal编程技术网

python类可以访问自己对象的属性吗?

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

我试图创建一个蜘蛛而不指定特定的url。我想创建spider对象,从对象中提取url,并将其用作我的
允许的\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)]