当前位置: 首页 > 科技观察

GneList来了!抓取列表页面非常容易!

时间:2023-03-17 15:04:38 科技观察

Gne[1]发布后,解决了大家自动抓取新闻正文页面的需求。但是后来,有同学想做一个抓取列表页的工具,于是就有了今天的GneList。什么是GneListGneList是一个浏览器插件,专门用于生成列表页面的XPath。使用此XPath,您可以快速到达列表页面中的每个项目。GneList如何运作?GneList的使用非常简单,几乎不需要任何说明。打开有列表的页面,点击插件输入名称,点击开始抓取鼠标点击列表中的前两项,GneList会自动选中所有项目,点击提交按钮进入数据库检查XPath如何安装GneList?GneList由两部分组成:插件端和后端。插件端下载地址:https://github.com/GeneralNewsExtractor/GneList/releases/download/0.1/GneList.zip后台代码:https://github.com/GeneralNewsExtractor/GneListBackend,以及后端依赖于MongoDB。要安装后端,首先确保您有一个可以连接到的MongoDB,我们假设它的URI是:mongodb://localhost。从Github克隆后端代码:https://github.com/GeneralNewsExtractor/GneListBackend.git。进入后端代码根目录下的config文件夹,会发现一个local.yml文件。打开它,第一行填写MongoDB的URI地址,第二行填写数据库名,第三行填写集合名。插件生成的XPath将保存在这里,供您下游调用。更改配置文件后,回到后端根目录,分别执行以下命令(需要先安装Pipenv):pipenvinstallpipenvshellexportlocal#你创建的yml文件名uvicornmain:app--port8800--host0.0.0.0#使用8800端口执行命令后,如果用浏览器访问http://127.0.0.1:8800,应该看到下图的内容,说明后台搭建成功.安装插件GneList插件支持所有基于Chromium的浏览器,包括但不限于Chrome/Chromium/Edge。从上述地址下载GneList.zip后,解压到任意文件夹,如下图:然后打开浏览器的插件管理页面,开启开发者模式,比如下图是我在Edge中打开了开发者模式的方法。然后点击右上角的LoadUnzippedExtension,选择GneList文件夹。结束。现在,刷新已有的列表页,或者打开一个新的列表页,点击插件试试看。在管理配置页面上,右键单击插件并选择扩展选项。在Chrome上,该名称可能称为Options或EnglishOptions。可以打开如下图的页面:如果你没有启动后台,或者后台地址不是http://127.0.0.1:8800(比如你把后台部署在服务器上,你需要使用IP或域名访问,或端口不是8800),则页面应如上图所示。可以将输入框中的地址改为后台地址/规则,例如http://123.56.78.99:8888/rule。然后点击提交按钮。接下来刷新页面,可以看到如下图所示的内容:该页面显示了你添加的所有网站的XPaths,你可以修改或删除它们。Q&A为什么插件生成的XPath这么奇怪?因为这些XPath是从CssSelector转换为XPath,所以我使用了第三方JavaScript包。那个包裹太奇怪了。但不影响其功能。稍后我会用更好的包替换它,使XPath看起来更好。我的爬虫如何使用这些XPath?还记得一开始配置的MongoDB吗?让你的爬虫读取它。为什么我启动插件后第一次点击网页上的元素没有反应?第一次点的时候,如果发现没有红框,就点更多。当您看到红色框时,单击第二个元素。GneList的原理是什么?在接下来的几篇文章中,我将介绍GneList的原理。如果你等不及,也可以在Github[2]上查看源代码。与Gne一样,GneList建立在其他优秀开源项目的基础上,尤其是受到web-scraper-chrome-extension[3]的启发。因此,GneList也是完全开源的,允许非商业用途。参考文献[1]gne:https://github.com/GeneralNewsExtractor/GeneralNewsExtractor[2]源码:https://github.com/GeneralNewsExtractor/GneList[3]web-scraper-chrome-extension:https://github.com/martinsbalodis/web-scraper-chrome-extension