Python 在Scrapy中找不到选择器的路径
使用Scrapy为CSS或Xpath从HTML响应中获取特定元素找到路径的最佳方法是什么 我正试图从中收集数据。我用的是刮痧(I) 我对它相当陌生)。我正在尝试查找到的选择器路径 在Python 在Scrapy中找不到选择器的路径,python,xpath,web-scraping,scrapy,Python,Xpath,Web Scraping,Scrapy,使用Scrapy为CSS或Xpath从HTML响应中获取特定元素找到路径的最佳方法是什么 我正试图从中收集数据。我用的是刮痧(I) 我对它相当陌生)。我正在尝试查找到的选择器路径 在data testid=“tweet”下发送推文,但我在 scrapy shell提供了一个none_类型的结果。我首先试着写路径 但我想我做错了。然后我试着 右键单击并复制路径(我使用CSS和 Xpath)但仍然没有运气 我提到了堆栈溢出帖子,但这不起作用 要么 要获取文本,您需要深入到文本所在的地址。例如: re
data testid=“tweet”
下发送推文,但我在
scrapy shell提供了一个none_类型的结果。我首先试着写路径
但我想我做错了。然后我试着
右键单击并复制路径(我使用CSS和
Xpath)但仍然没有运气
我提到了堆栈溢出帖子,但这不起作用
要么
要获取文本,您需要深入到文本所在的地址。例如: response.xpath(“//div[@class='js-tweet-text-container']/p[@class='TweetTextSize-TweetTextSize--normal-js-tweet-text-tweet-text']/text()”).getall() 也适用于:
response.xpath(“//p[@class='TweetTextSize TweetTextSize--normal js tweet text tweet text']/text()”)。getall()您可以通过以下方式获得所有推文:
//div[@data-testid="tweet"]//div[@lang]
要获取每条tweet的文本和hashtag,请使用函数字符串:
string(//div[@data-testid="tweet"]//div[@lang])
通过循环进行迭代以获得所需的一切:
string((//div[@data-testid="tweet"]//div[@lang])[i])
如果您只需要文本(无哈希标记):
首先,我知道要提取准确的数据,我必须深入挖掘,我在过滤出每条推文的部分,然后在爬虫根据推文中提供的数据(如用户和评论数量等)构建数据时遇到问题。其次,我不知道XPath指的是什么。我试着自己把答案弄出来,但没有结果。这条路径指向什么?我在一个推特页面上测试了它,它读取推特的文本。如果无法读取数据,则会出现其他问题。Scrapy shell response.body是否查找所有页面内容?如果是,您只需要按照XPath的路径获取信息。是的,response.body确实返回所需的输出,但是现在我已经彻底检查了,即使是正确的XPath,它也返回一个空列表。你知道如何解决这个问题吗?这个路径在chrome开发者工具上找到了正确的东西,但是当我在scrapy shell中编写response.xpath('//div[@data testid=“tweet”]')时,它仍然返回一个空字符串。
//div[@data-testid="tweet"]//div[@lang]/span[string-length(text())>1]