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

时间:2018-12-06 16:17:11

标签: 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()

输出     []

我不明白为什么无法提取,我认为这是由于我的其余标签都是伪元素,但我还没有找到解决问题的方法... < / p>

1 个答案:

答案 0 :(得分:1)

您需要做的第一件事是不使用网络检查器工具,而是查看网站的原始HTML。

Web检查员会考虑Java脚本所做的转换,并可能在Java脚本执行后向您显示一个更新的HTML,这很明显看不到。