得到的图片地址是相同的
来源:4-24 大规模抓取图片下载出错的问题
若羲
2022-06-04
抓取地址:https://news.cnblogs.com/
现象:使用xpath方式,抓取的时候,图片地址得到的都是第一个,但使用css抓取,是正确的
def parse(self, response, **kwargs):
post_nodes = response.css('#news_list .news_block')
for post_node in post_nodes:
image_url = post_node.xpath('//*[@class="entry_summary"]//a//img//@src').get('')
# image_url = post_node.css('.entry_summary a img::attr(src)').get('')
print('image_url:', image_url)
# post_url = post_node.xpath('//h2//a//@href').get('')
post_url = post_node.css('h2 a::attr(href)').get('')
print('url:', parse.urljoin(response.url, post_url))
yield Request(url=parse.urljoin(response.url, post_url), meta={'front_image_url': image_url},
callback=self.parse_detail,
dont_filter=True)
写回答
1回答
-
bobby
2022-06-07
xpath的嵌套提取语法有变化, image_url = post_node.xpath('//*[@class="entry_summary"]//a//img//@src').get('') 要改成 image_url = post_node.xpath('.//*[@class="entry_summary"]//a//img//@src').get('')
前面多了一个点表示嵌套取,否则会从跟元素获取
00
相似问题