Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Scrapy中找不到选择器的路径_Python_Xpath_Web Scraping_Scrapy - Fatal编程技术网

Python 在Scrapy中找不到选择器的路径

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

使用Scrapy为CSS或Xpath从HTML响应中获取特定元素找到路径的最佳方法是什么

我正试图从中收集数据。我用的是刮痧(I) 我对它相当陌生)。我正在尝试查找到的选择器路径 在
data testid=“tweet”
下发送推文,但我在 scrapy shell提供了一个none_类型的结果。我首先试着写路径 但我想我做错了。然后我试着 右键单击并复制路径(我使用CSSXpath)但仍然没有运气

我提到了堆栈溢出帖子,但这不起作用 要么


要获取文本,您需要深入到文本所在的地址。例如:

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]