item_selecter的数据都是第一条的,怎么都跑不出下一条数据?

来源:4-24 大规模抓取图片下载出错的问题

慕标6621168

2020-06-27

'''
问题:问啥每次打印的front_image_url 和url都是第一条的,但是print(item_selecter.extract())打印的html并不是一个?百思不得其解,希望老师给回答下,scrapy入门的代码
'''
def parse(self, response):
    item_selecters = response.xpath('//div[@id="news_list"]/div[@class="news_block"]')
    for item_selecter in item_selecters:
        print(item_selecter.extract())
        front_image_url = item_selecter.xpath('//div[@class="entry_summary"]/a/img/@src').extract_first('')
        url = item_selecter.xpath('//div[@class="content"]/h2/a/@href').extract_first('')
        # 请求详情数据
        print(url)
        yield Request(parse.urljoin(response.url, url), meta={"front_image_url": front_image_url},
                      callback=self.parse_detail)
写回答

1回答

bobby

2020-06-28

你把这里的xpath写法改成css选择器试试呢

0
2
bobby
回复
慕标6621168
是的 你可以先使用css选择器
2020-07-01
共2条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程