用xpath和css两个语法,提取结果为什么不一样?
来源:4-10 编写spider完成抓取过程 - 2
慕容3089938
2021-09-22
`
def parse(self, response):
post_nodes = response.xpath('.//div[@id="news_list"]/div[@class="news_block"]')
#post_nodes = response.css('#news_list .news_block')
for i in post_nodes:
post_url = i.xpath('//h2[@class="news_entry"]/a/@href').extract_first("")
#post_url = i.css('h2 a::attr(href)').extract_first("")
print(post_url)
yield Request(url=parse.urljoin(response.url, post_url))`
两个语法选择的节点都是一样的呀,我不可能搞错啊。。
写回答
1回答
-
bobby
2021-09-23
xpath的新语法想要嵌套提取有点变化 ,你在你的xpath前面加个点号,比如
i.xpath('.//h2[@class="news_entry"]/a/@href')
否则就是全局查询,css选择器没有这个问题
00
相似问题