html - 使用 XPath 从网站中抓取伪元素

标签 html css xpath scrapy

我想从一个网站中提取数据,但似乎我要提取的元素不是“可访问的”。我还发现它们似乎是伪元素。我可以在我的网络检查器中看到他们的标签之前标有#。

此外,在使用 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/

相关文章:

java - 将字符串数组拆分为列 java

CSS 滑动 div(过渡/转换在 Firefox 25.0.1 中不起作用)

xml - xpath 其所有子元素名称都相同的父级

selenium - 如何在 Chrome 或 Firefox 中获取绝对 XPath

html - Wave 可访问性工具显示对齐文本的警报

css - <ul> 和 <li> 将 <div> 向下推

javascript - 将对象插入未知对象路径

css - css中的@是什么意思?

html - 在 DIV 中均匀分布文本

javascript - 将类添加到包含 innerHTML 字符串的 div