我的问题与this one非常相似,但不完全相同。我正在尝试抓取网页A,其中包含我要废弃的商品以及指向网页B1,B2,B3的链接列表...每个B页面包含我要废弃的商品以及指向另一个页面的链接,C1,C2,C3。每个C页面还包含我要废弃的项目。
这是我的蜘蛛现在的样子:
class XiaomiSpider(CrawlSpider):
name = 'xiaomi'
allowed_domains = ['mi.com']
start_urls = ['http://app.mi.com']
## parse A page
def parse(self, response):
le = LinkExtractor()
for link in le.extract_links(response):
yield SplashRequest(
link.url,
callback = self.parse_2,
endpoint='render.html',
args={'wait':0.5}
)
## parse B pages
def parse_2(self, response):
for sel in response.xpath('//ul[@class = "applist"]/li/h5/a'):
item = XiaomiItem()
# print (sel.xpath('text()').extract())
item['name'] = sel.xpath('text()').extract()
yield item
le = LinkExtractor()
for link in le.extract_links(response):
yield SplashRequest(
link.url,
self.parse_dir_contents,
endpoint='render.html',
args={'wait':0.5}
)
## parse a page to save the item
def parse_dir_contents(self, response):
for sel in response.xpath('//ul[@class = "applist"]/li/h5/a'):
item = XiaomiItem()
# print (sel.xpath('text()').extract())
item['name'] = sel.xpath('text()').extract()
yield item
问题是抓取工具没有转到C页面。我想问题出在parse_2
函数中,但不知道如何修复它。有谁能告诉我这是什么问题?