我在scrapy中度过了一段轻松的时光,直到我开始尝试在我的蜘蛛中加入第二种解析方法来处理链接。我尝试运行时遇到以下错误:
“parse_dir_contents()缺少1个必需的位置参数:'response'”
不确定为什么会这样。我遵循了官方scrapy文档中提供的基本模型。
这是我的代码:
import scrapy
from bloombergspider.items import ArticleItem
class BloombergSpider(scrapy.Spider):
name = "bloomberg"
allowed_domains = ["http://www.bloomberg.com/"]
start_urls = [
"http://www.bloomberg.com/"
]
def parse(self, response):
for href in response.xpath('//a[contains(@href, "articles")]/@href'):
url = response.urljoin(href.extract())
yield scrapy.Request(url, callback=self.parse_dir_contents, dont_filter="true")
@staticmethod
def parse_dir_contents(self, response):
for sel in response.xpath('//h1'):
self.logger.info("parse dir contents")
item = ArticleItem()
item['title'] = sel.xpath(".//span/text()").extract()
yield item