火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 16337|回复: 9

js网站之post采集方法

[复制链接]
发表于 2010-11-23 14:35:59 | 显示全部楼层 |阅读模式
本帖最后由 zhouchanglin 于 2010-11-23 14:42 编辑

有些网站的列表无论怎么点,地址栏的url是不变的,这样的网站一般都是post方式向服务器请求数据的,照成了地址不变的假象,迷惑大家。

火车针对网站的请求方式有2种,get,post,这样的网站就需要采用post了,见图;当选择post方式采集时,会出现需要填的post数据的框框,这里要填post数据;

下面说说post数据的获取方法:使用专门的抓包工具WSockExpert数据包抓取工具,下载地址http://www.locoy.com/Down/RelatedSoft/WSockExpert.html

首先在浏览器打开要抓取的网页,然后打开抓包工具这个、找到那个网页进行监视,迟后你对这个网页的操作,网页向服务器的请求等信息都会被抓取,我们选择需要的信息,分析网页的采集方法,对于post当然要选择抓取到的pos信息,post信息重要包括1请求的来源地址,2请求的目标地址,3和向目标网站发送的post数据。

下面是在抓包工具里找这3个信息的方法:1  2。到那个页面点下分页,记住点的是第几页,路点了3;3然后看看工具已经抓到了很多数据了,send是浏览器向服务器发送数据,wsa是服务器返回的数据,找到post的那一行,图片蓝色的那行,看到pos几个字了吧,
1.发送请求的来源地址见图蓝色部分,Referer:后面的网址;2.post请求的目标网站,这个地方是个相对地址,是相对于那个来源地址的;3。post数据,点分页后提交了哪些数据呢,蓝色部分,注意有些post会非常多,这时数据有的会在post那行的下一行,做发布模块时抓包经常在下一行;

以上只是对抓包工具的使用部分

下面找个网站通过分析源码来找出他是怎么做的,当点击分页时发生了什么,浏览器做了什么,发生了什莫事件;以这个网站为例http://channel.chinanews.com/cns/cl/cul-whkd.shtml
它的地址就是不变的,其实很容易想到就是找当点页数时,触发了某个函数,而这个函数的任务是了解到你的请求,路点了哪个页,选了哪些选项,查询了什么,进行些对表单的项目的值的设置,然后把表单数据提交给目标网质;

这是上面网站的分页部分的源码
  1. <div id='pagediv'><span class='diabledpage'>首页</span><span class='diabledpage'>上一页</span><span class='thispage'>1</span><a href='javascript:ongetkey(1)'>2</a><a href='javascript:ongetkey(2)'>3</a><a href='javascript:ongetkey(3)'>4</a><a href='javascript:ongetkey(4)'>5</a><a href='javascript:ongetkey(5)'>6</a><a href='javascript:ongetkey(6)'>7</a><a href='javascript:ongetkey(7)'>8</a><a href='javascript:ongetkey(8)'>9</a><a href='javascript:ongetkey(1)'>下一页</a><a href='javascript:ongetkey(410)'>尾页</a><div>
复制代码
可以知道当点击页的时候触发了ongetkey这个函数,找到这个函数,了解它做了什么,一切就豁然开朗了

这是我找到的ongetkey函数
  1. function ongetkey(page){
  2.         document.sform.pager.value=page;
  3.         document.sform.submit();
  4. }
复制代码
这个函数在源码里直接就可以找到,些函数封装在js文件里,需要在js文件里找,

这个函数的意识是接收到传递的参数page----第几页,然后1把名字叫sform的表单中名字叫pager的表单项的值设置为page的值,2:sform表单提交

下面是sform表单的源码:
  1. <form method="post" name="sform">
  2.           <input type="hidden" name="pager" value="0"/>
  3.   </form>
复制代码
很少的代码,就一个pager表单项,默认pager值为0,当ongetkey函数触发时,就会把点击的页数付给pager,提交表单,我没有找到这个表单的action属性,因此用抓包抓下它的post地址,post数据的处理我的理解是把表单项用连字符&连接起来,发送给post地址,而利用抓包工具来获得post数据,更加的快捷和直观

下面是这个网站的规则

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入会员

x
发表于 2010-11-27 08:17:33 | 显示全部楼层
这个强大啊。不错。一定要顶啊。
发表于 2010-12-1 09:21:55 | 显示全部楼层
这个是个好东西啊。谢了
发表于 2010-12-8 19:34:55 | 显示全部楼层
实在是讲解的太好了。不过结尾匆忙了点。
发表于 2011-2-16 10:48:08 | 显示全部楼层
你能帮忙看看这个网站怎么采集吗?
http://www.njhrd.com/search/index.aspx?align=S&worckcity=%u5357%u4eac%2c&kwType=1
能不能写个分页规则给我呢 , 谢谢啦!
发表于 2012-4-3 18:49:14 | 显示全部楼层
久旱逢甘露啊,虽然没完全看懂,但基本原理已经差不多明白了,仔细研究中。
发表于 2012-7-13 16:21:18 | 显示全部楼层
http://food.118114.cn/search/quanzhou/food/searchResult.htm这个网站跟这个相似,可是我还是采不下来
发表于 2012-6-19 17:56:35 | 显示全部楼层
为什么下载附件时无法读取
发表于 2012-11-19 15:36:28 | 显示全部楼层
顶一下 留下 有时间 瞅瞅
发表于 2013-1-7 09:40:18 | 显示全部楼层
感觉蛮有用的。。。
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2024-11-18 20:19

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表