自动采集文章(ECS云服务器SWAS轻量应用服务(组图))
优采云 发布时间: 2021-09-02 05:15自动采集文章(ECS云服务器SWAS轻量应用服务(组图))
ECS云服务器 SWAS轻量级应用服务器RDS云数据库Redis云数据库CDN内容分发OSS对象存储SLB负载均衡NAT网关DNS云解析邮件企业邮箱WAF应用防火墙DDoS高防SMS短信包MK云市场XIN最爱IM商标注册JZ自营施工站
Crawling是Wordpress下的一个自动采集爬虫插件,可以自动采集crawl target网站内容并自动发布。
一、写在前面
首先声明,我并没有真正参与 PHP。我通常用 C++ 和 Python 编写代码。对于 PHP,我只是在多年前的几天前写博客和写的。最近我换了工作,等待辞职。我无事可做,所以我写了一个插件来娱乐。如果你觉得它不好用,请给我一些建议。我会采纳好的建议,努力把这个插件做得更好。
在开发这个插件的时候,我们已经考虑过让配置更简单易懂。但是为了让插件更加灵活,还是需要了解规律性和xpath规则。如果你看懂了,相信本教程你一看就懂了,完全没有难度。如果你之前没有接触过regular和xpath,也没关系,因为你其实并不需要了解它,直接看样例文案就行了。因为是第一个版本,有些地方可能写的不详细,请大家指出。
二、下载安装
首先打开下载最新版本得到crawling_v*.tar.gz。
然后,解压压缩包,上传到wordpress插件目录。激活插件。
三、任务管理
一个任务可以理解为一个爬虫,可以配置多个任务,每个任务可以单独设置参数。
比如我这里设置了三个任务,如图:
第一个任务是爬取《一起听风》的全部内容(这是我最喜欢的电影之一网站)。爬取间隔设置为-1,表示只采集一次,不重复执行。
第二个任务是爬取《听风》的前三页。如果采集没有重复采集,则只会抓取前三页的更新内容。 采集 每 24 小时一次。
第三个任务是爬取“阳光影网”首页所有更新的电影(这里是电影乐园的新网站),因为阳光影业的所有更新都在首页。 采集 每 24 小时一次。
为每个任务分别设置的参数,如图:
以下是每个任务的设置:
1 任务名称:
每个任务的别名很容易记住,没有其他作用。
2 入口网址:
每个任务爬虫开始的地址。此 URL 通常是主页或列表页面。然后爬虫会从这个页面开始采集。
3 爬行间隔时间:
运行任务(爬虫)之间的间隔。
4 列出页面 url 规律/内容页面 url 规律:
输入第一个URL(入口URL)后,爬虫需要区分哪些内容页面需要采集。所以需要设置匹配内容页面url的正则表达式。
爬行还需要知道如何翻页,找到更多的内容页,所以需要设置列表页url的正则表达式。
例如:抓取“嘿听风”的全站内容
打开网站homepage。发现列表页的网址都是数字,内容页的网址都是数字。 html
列表页面
内容页面
所以正则表达式如下:
列表页面url正则:\/page/[1-9]\d*$
常规内容页面网址:\/[1-9]\d*.html$
如果只需要采集前三页的更新内容,只需要将列表页的正则表达式改为\/page/[1-3]$即可。
配置这两个参数时,可以打开“正则表达式在线测试”页面进行测试。
5 文章title (xpath)/文章content (xpath):
进入内容页面后,爬虫要选择要爬取的内容,比如文章的标题和文章的正文。所以需要设置xpath告诉爬虫。
例如:
打开听一页风音,如:。通过浏览器查看页面源码,如图:
如你所见,文章的标题收录在
该元素中的元素。所以标题的xpath规则是://h1[@class="mscctitle"]/a
同理,从上图可以看出:内容收录在
,所以内容的xpath规则是://div[@class="content-text"]
配置完成后,可以打开“XPath在线测试”页面进行测试。
6 内容开始字符串/内容结束字符串:
一般网站内容中会有广告,或者其他一些东西,所以我们需要过滤掉这些内容,只保存我们需要的部分。大部分无用的东西(广告、分享按钮、标签等)都在文章的开头或结尾,内容是固定的。所以我们可以通过简单的字符串过滤掉。
比如《心随风吟》中每个文章内容的开头都有一个广告,如上图所示。
通过“XPath在线测试”页面测试我们在上一步配置的内容xpath规则,可以得到文章内容,如下图:
如你所见,真实内容来自
后来开始。
所以内容起始字符串设置为:
因为文章content后面没有多余的部分,所以后面不用管,把内容结束字符串设置为空即可。
7 文章图片:
采集插件可以自动将文章中出现的图片保存到本地,默认按年月保存在文件夹中,图片的标签会设置为@的标题文章。如果不需要本地保存,可以选择“不处理”。
8 文章Category:
选择要保存到的类别。和 wordpress 一样,你可以选择多个类别。