那天在论坛里给位朋友写腾讯女性频道的一个栏目规则时,发现该标题列表是JS分页方式,内容页也有很多需要过滤的东西, 所以当时就打算写个教程,一直没时间弄,终于空了些来完成这个教程,本打算就做个图文教程,又看到论坛里有兄弟抱怨没 有采集的视频教程,所以就录了这个<<will版P8通俗图文采集实例讲解第二期>>视频讲解,不过个人还是比较偏爱于图文的 讲解,所以一并放出,希望大家笑纳!!如果对于图文看得不是很懂的朋友可以下载视频来观看,本人第一次录制视频,对于编码选择这方面的东西不是很懂,所以成品有些过于臃肿了,视频时长近50分钟,压缩包大小为127MB,呵呵,网速好的话下载也 不用多久!!
首先介绍一下我们今天的知识点!如下图:
图1
主要就上面罗列的4点,其实也就是JS列表的获取方法,以及内容过滤方式的讲解,3和4是两个PHP系统函数. 打开我们要采集的目标站:http://lady.qq.com/beauty/beauty1/llryxsj.htm(腾讯女性频道>>美容护肤)
图2
我们在点击翻页的时候会发现地址栏并没有变化,整个列表内容由JS来调用,是JS分页方式,碰到这种分页我们要怎么办呢?
这时我们需要用到一个抓包的工具,我们将用这个工具来获取列表页的真实地址,这个工具我在论坛里有发可以在这里获得:
http://bbs.php168.com/read-bbs-tid-273215-fpage-0-page-1.html
图3
上表的正则工具我也在后面讲解内容过滤的时候也会用到.
抓包工具为绿色软件,解压后可以直接使用,使用这个软件的时候可能有些杀毒软件会干掉它,这时候需要把杀软件先禁用.
我们打开这个抓包工具,点击打包按钮,选择所使用的浏览器进程,找到腾迅女性频道的选项卡;如图4:
双击打开,出现如下界面:
图5
把界面最小化,然后我们点击腾讯女性栏目的翻页,来翻动一页,翻页后再打开抓工具,我们这时就能看到里面多了很多的数据, 有一些是以GET开头的,我们就是需要从这些GET的数据行里找出真实的列表页地址(注:有一些网页可以使用的是POST的发送方式 那就是POST开头)
如图6:
我们把GET后面的网址输入到地址栏里去测试一下,这里只截获了两个GET,我测试的时候第一个是错误的,第二个是正确的:网址为: /c/beautysj35_2.htm,我们在前面用根网址补齐地址就是:http://lady.qq.com/c/beautysj35_2.htm 输入地址栏就可以看到真实的列表页:
如图7:
然后我们把这个地址填写到采集列表的规则里去,就是如下设置:
如图8:
我们现在来写获取标题以及内容的网址的规则,在上一篇教程里我也有提到过;我习惯使用截取标题前不需要的以及截取标题后不需要的内容,这样可以减少标题规则的错误率. 我们先来查看一下列表页的源代码,如图9:
我们会看到这个面页的代码比较简单,里面就只有一个id为listZone的DIV而已,所以我们在取部分就这样设置:
如图10:
然后是填写变量规则的部分设置,代码如下:
|
我们来测试一下采集标题,测试结果没有问题可以正确得到标题和内容的网址.点击下一步,开始配置内容的规则我们随机的打开两到三个个内容页面!查看并对比其源代码:我们可以很容易的找出文章内容开始前的标记代码,并且该标记在页面中是唯一存在的是:
|
这段HTML标记,然而结尾的部分就不太好确定了,因为从打开的三人面页上我们可以看到,正文结束后的部分都不太一样,如图11:
随机的浏览一些内容页面我们就会发现正文后面都会随机出现这三部分内容,所以我们找的结尾一定不能是这个部分源码里的任何一个否则就无法正确采集到所有的文章. 我个人是喜欢使用分页代码所在的那个层来做为结尾的,规则做多了你就能发现分页的那段代码前面的一个DIV或者是P或者是SPAN标记基本上是唯一存在在面页中的,所以我每次只要存在有分页我就会直接寻找这段代码来做为规则结尾的代码. 像这样的正文我们原则是结尾的标记尽量的往后找,并尽量保证它的唯一性(其实只要是正文开始后第一次出现的标记就可以了),
下面我先放出目标内容页的部分源代码,方便大家理解:
|
我选择结尾的HTML标记为
|
所以内容规则就是这样了:
|
但是规则做成这样,我们就会把后面的那些个不需要的部分采集回来,所以我们需要来过滤掉这些不需要的部分! 我把后面不需要的部分分成了三个段:
|
|
|
我们要怎么来过滤这三部分呢?我们将用到高级设置里的倒数第二个框”结尾PHP正则程序语法 ” 我们先来看下上一个教程中给出的部分正则代码 图文的先写到这里吧,后面的今天实在是写不下去了!!!见谅!!大家需要可以先看视频教程,讲解更为详细一些!
图文的教程剩下的部分有时间再来补上吧!!