我想从一个网站中提取数据,但似乎我要提取的元素不是“可访问的”。我还发现它们似乎是伪元素。我可以在我的网络检查器中看到他们的标签之前标有#。
此外,在使用 XPath 时我无法提取我想要访问的文本。当我无法提取标签的内容时,它们是 CSS“级联树”中的一个点,您可以在下面看到它。 在这里,我可以提取标签“内容喜欢”之前的信息。但是当我请求标签“fos_comment_thread”时,它就是下面的标签,返回是空的。特别是这个标签是一个伪元素,后面跟着。然而,我想要访问的文本在 CSS 树的这一部分更深......
输入
reponse.xpath=('//div[class@='row']/div[@class='span9 forum']/div[class@='content fond'].extract()
输出
['<div id="foc_comment_thread"<div>']
输入
reponse.xpath=('//div[class@='row']/div[@class='span9 forum']/div[class@='content fond']/div[id@='fos_comment_thread'].extract()
输出 []
我不明白为什么我不能提取,我认为是因为我剩下的标签都是伪元素,但我还没有找到解决问题的方法......
最佳答案
您需要做的第一件事是不使用网络检查器工具,而是查看网站的原始 HTML。
Web 检查器会考虑 Javascript 所做的转换,并可能会在 Javascript 执行后向您显示更新的 HTML,而 scrapy 显然看不到。
关于html - 使用 XPath 从网站中抓取伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53655533/