如何在Scrapy中使用Xpath选择器提取目标信息(两种方式)
如何在Scrapy中使用Xpath选择器从HTML中提取目标信息。在Scrapy中,它提供了两种数据提取方法,一种是Xpath选择器,另一种是CSS选择器。在本课中,我们将首先关注 Xpath 选择器,仍然使用 伯乐 Online 作为示例网站。
1。打开网站,随机选择一篇你想查看的文章,如下图。
我们需要提取的信息主要包括标题、日期、主题、评论数、正文等。
2.然后我们就可以开始编写代码了。基本代码如下图所示。需要注意的是,start_urls参数值改为具体的URL,其他代码不变。
3。返回原网页,按键盘快捷键F12或在网页上单击鼠标右键,然后选择“检查(N)”,弹出网页的调试界面,如下图所示。
4。点击下图中红框内的小图标,可以看到网站数据与源代码的交互,可以轻松帮助我们找到标签。
5。如下图所示,当我们选择上图中的小图标,然后选择网页的标题时,网页的源代码就会自动跳转到我们定位的部分,我们可以看到标题是在标签下。
6。接下来,我们可以根据上图中的网站层次结构将 Xpath 表达式写入标题。这里有一个比较笨的方法,从头到尾写列表,“/html/body/div[1]/div[3]/div[1]/div[1]/h1”,你有没有觉得很难的?像这样的大标题信息更容易提取。如果遇到角落里的信息,写表达式就比较困难,而且这种方法容易出错,效率低下。但朋友们,不要灰心。浏览器为我们提供了一种直接复制Xpath表达式的便捷方法。右键单击标题或目标信息,然后选择“复制”,然后选择“复制 Xpath”,将 Xpath 表达式复制到标签中。具体流程如下图所示。
可以看到复制的Xpath表达式为“//*[@id="post-113659"]/div[1]/h1”,其中id="post-113659"属于本文的标志,即如下所示。
我们可以通过这个标识符快速找到标签,有时它与我们笨拙地手动输入的Xpath表达式不匹配。下面分别输出两个Xpath表达式匹配的内容。
7。在主Scrapy爬虫文件中输入Xpath表达式,然后调试我们之前定义的main.py文件,你将得到如下所示的输出。可以看到selector1和selector2中的数据都是网页的内容,而且内容是一致的。
然后单击停止调试模式即可退出调试模式。
8。从上图中我们可以看到选择器也取出了标签
,而我们想要获取的内容只是标签里面的数据。此时我们只需在 Xpath 表达式之后使用它即可。通过添加text()函数,可以提取数据。
通过这篇文章我们可以了解到,即使我们自己写的Xpath表达式和浏览器返回给我们的Xpath表达式在书写上不一致,但程序运行后,返回的数据内容是一致的。 。换句话说,特定目标数据的Xpath表达式不是唯一的。只要符合Xpath表达式的语法,即使很短也没有问题。只要快乐就好。另外,在Scrapy爬虫框架中,text()函数经常与Xpath表达式结合使用来提取节点的数据内容。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。