gpt4 book ai didi

python - 关于 XPath 选择器的问题(针对 Scrapy)

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:51 27 4
gpt4 key购买 nike

目标:从 div 类 list_area daily_all 中抓取文本数据。

使用 scrapy shell ,我首先“抓取”了我想从中抓取数据的网站: https://comic.naver.com/webtoon/weekday.nhn

使用'scrapy shell'脚本:scrapy shell 'https://comic.naver.com/webtoon/weekday.nhn'

然后使用 xpath,我想从 div 类“list_area daily_all”中抓取所有文本数据:

response.xpath("//div[@id='wrap']/div[@id='container']/div[@class='list_area daily_all']/text()")

但是,上面的代码没有返回任何东西。我做错了什么?

最佳答案

因为 div[@id='container']div[@class='list_area daily_all'] 不是父子,所以你不会得到对象。

再加一个斜杠就成功了:

In [1]: response.xpath("//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']")
Out[1]: [<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']" data=u'<div class="list_area daily_all">\r\n '>]

文本也一样。你选择了很大的 block ,里面有很多标签和文本。您可以像这里一样选择所有文本:

In [2]: response.xpath("//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()")
Out[2]:
[<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()" data=u'\r\n \r\n\t\t\t\t'>,
<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()" data=u'\r\n\t\t\t\t\t'>,
...

或者在您的选择器中更精确。

关于python - 关于 XPath 选择器的问题(针对 Scrapy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com