Scrapy 刮皮不';t将开始URL作为项目返回
使用下面的代码,我可以让Scrapy抓取站点的页面,解析这些页面,并将每个页面解析的结果作为一个项目返回,以便在管道中进行处理 我的问题是我无法解决如何处理start_url页面。start_url永远不会传递给parse_item函数 我错过了什么Scrapy 刮皮不';t将开始URL作为项目返回,scrapy,Scrapy,使用下面的代码,我可以让Scrapy抓取站点的页面,解析这些页面,并将每个页面解析的结果作为一个项目返回,以便在管道中进行处理 我的问题是我无法解决如何处理start_url页面。start_url永远不会传递给parse_item函数 我错过了什么 class GenericSpider(CrawlSpider): name = "Generic" allowed_domains = [] start_urls = [] ignored_extensions = [
class GenericSpider(CrawlSpider):
name = "Generic"
allowed_domains = []
start_urls = []
ignored_extensions = [
# images
'mng', 'pct', 'bmp', 'gif', 'jpg', 'jpeg', 'png', 'pst', 'psp', 'tif',
'tiff', 'ai', 'drw', 'dxf', 'eps', 'ps', 'svg',
# audio
'mp3', 'wma', 'ogg', 'wav', 'ra', 'aac', 'mid', 'au', 'aiff',
# office suites
'xls', 'xlsx', 'ppt', 'pptx', 'doc', 'docx', 'odt', 'ods', 'odg', 'odp',
# other
'css', 'exe', 'bin', 'rss', 'zip', 'rar',
]
rules = [
Rule(LinkExtractor(deny_extensions=ignored_extensions), follow=True, callback='parse_item')
]
def __init__(self, start_url, source, *args, **kwargs):
super(GenericSpider, self).__init__(*args, **kwargs)
#set common settings
Bootstrap.init(self, kwargs)
self.source = source
self.start_urls = [start_url]
self.allowed_domains = [urlparse.urlparse(start_url).hostname]
def parse_item(self, response):
process response and return item ....
您将需要定义以下内容:
class GenericSpider(CrawlSpider):
name = "Generic"
allowed_domains = []
start_urls = []
...
def parse_item(self, response):
process response and return item ....
parse_start_url = parse_item