快捷导航
3 771

如何构造网址?

ym 于 2016-12-29 16:09 发表 [复制链接]
本帖最后由 ym 于 2017-3-10 09:49 编辑

下面会总结一些常用的网址构造方法:
  • 免做翻页设置,构造每一页的独立网址直接采集
  • 构造搜索结果页面的独立网址,批量采集
  • 构造下级线索的网址,批量采集下级网页

举报 使用道具
| 回复

共 3 个关于本帖的回复 最后回复于 2017-11-19 08:27

ym 版主 发表于 2016-12-29 16:25:34 | 显示全部楼层
本帖最后由 ym 于 2016-12-30 09:50 编辑

一、构造页码的独立网址【注意:这个方法适用于只有页码是变量的网址,多变量的网址就不适合了。
如果每一页都有独立网址,知道总页数就可以批量构造出全部页码的网址,然后直接添加到规则里,同时要删掉规则里的翻页设置,就可以单页采集,不用担心采漏某一页或者是重复翻页。以安居客的租房列表为例,操作如下:
1、它的首页网址是没有显示页码数值的,翻页到第2页就可以看到页码数值p2,说明每页都有独立网址
首页网址:http://gz.zu.anjuke.com/fangyuan/tianhe/
第2页网址:http://gz.zu.anjuke.com/fangyuan/tianhe/p2/

2、把第2页的网址拷贝到excel里,鼠标指在单元格右下角时会出现+号,单击鼠标往下拖动,就会看到页码的数值会自动递增
QQ截图20161229161945.png
QQ截图20161229161959.png

3、把构造出来的页码网址拷贝到浏览器里,检查一下是否能打开对应的页面,没有问题就可以批量添加到规则里。
举报 使用道具
ym 版主 发表于 2016-12-30 10:29:47 | 显示全部楼层
本帖最后由 ym 于 2016-12-30 10:38 编辑

二、构造搜索结果页面的独立网址
如果搜索结果页面具有独立网址,并且网址里的关键词支持中文,就可以构造出想要的关键词网址,然后直接添加到规则里,就可以批量采集。以百度搜索为例,操作如下:
QQ截图20161230095658.png

1、把网址去掉关键词的部分拷贝到excel的单元格里,把想要搜索的关键词拷贝到旁边一列,然后复制网址往下粘贴
QQ截图20161230102003.png

2、把两列拷贝到记事本txt文件里,复制中间的空格,然后按快捷键Ctrl+H,弹出替换窗口,把空格粘贴到查找内容里,再点击全部替换,就可以把空格去掉。
QQ截图20161230101141.png

3、得到完整的网址后,还要检查是否为有效网址,用浏览器打开网址,能打开对应的搜索结果页面才算有效,否则无效,说明网址编码特殊,不适用这种方法,需要人工整理出关键词的网址或者是用连续动作实现自动搜索采集。
QQ截图20161230101253.png

举报 使用道具
ym 版主 发表于 2017-3-10 11:17:37 | 显示全部楼层
本帖最后由 ym 于 2017-3-10 11:31 编辑

三、构造下级线索网址,批量采集下级网页
如果网页上的锚文本是以JavaScript显示的网址,可以试试用浏览器的web开发者工具-网络(快捷键Ctrl+Shift+Q)来找找它的实际网址,如果能找到,通常只需做两级规则,第一级规则通过构造网址然后设置下级线索,第二级规则就定义实际网址的页面信息采集,最后批量采集第二级网页。

下面以农药查询为例,讲解一下如何找实际网址
样例网址:http://www.chinapesticide.gov.cn/hysj/index.jhtml

1、农药类别输入杀菌剂进行查询,可以看到搜索结果里的锚文本是一段javascript代码,没有实际的网址。
QQ截图20170310101101.png

2、按快捷键Ctrl+Shift+Q就会出现web开发者工具-网络,然后点击锚文本,网页加载信息的同时就能看到http消息的变动,找到类型为网页的消息
QQ截图20170310104636.png

3、点击网页类型的消息,右侧可以查看它的消息头,把请求网址拷贝下来
QQ截图20170310104709.png

4、去访问这个网址,看看是不是锚文本的实际网页地址,如下图,能够看到加载出的网页与原网页的一样,说明它就是我们要找的实际网址
QQ截图20170310101832.png

5、观察这个网址结构,看看是否有规律。
如本例中找到的实际网址为http://www.chinapesticide.gov.cn/myquery/querydetail?pdno=PD20120883&___t0.5563844510774419
它的规律就是http://www.chinapesticide.gov.cn/myquery/querydetail?pdno=加上“ 登记证号”。

所以,第一级规则要把“登记证号”采集下来,第二级规则就对实际的网页定义采集。其中构造第二级网址有以下两种方法:
5.1、用第一级规则把“登记证号”采集下来后,在excel里手工构造网址,再把网址批量导入到第二级规则里,操作跟前面说的第一种方法是一样的
5.2、第一级规则里对“登记证号”自定义xpath,直接补全前面部分的网址,再设置下级线索,然后运行第一级规则采集,就会把网址自动导入到第二级规则里。
本案例自定义xpath用了concat()函数来拼接前面部分的网址,如下:
  1. concat('http://www.chinapesticide.gov.cn/myquery/querydetail?pdno=',.//*[@class='t3']/span/a)
复制代码
QQ截图20170310111531.png

PS:
找不到实际网址的话,只能通过连续动作来模拟相关操作,加载出目标信息后再采集,详情查看教程->高级教程->连续动作

举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 百度推广后台数据DIY
  • 采集表单中的input动态内容
  • 采用刷新动作实现手机页面采集
  • 通过划定滚轮范围实现精确点击手机页面
  • 放大或者缩小页面便于采集手机网页内容

热门用户

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2017-12-18 22:42