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

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

js post网站专区

[复制链接]
发表于 2010-12-15 07:26:17 | 显示全部楼层
 楼主| 发表于 2010-12-15 12:22:42 | 显示全部楼层
楼上做好了,一开始我用http://www.cmt178.com/news.do?me ... ;number=3&type=厂商新闻  请求不到数据,可能是中文要编码才行

变成http://www.cmt178.com/news.do?me ... 6%E6%96%B0%E9%97%BB 就行了

它是post get都可以请求,所以规则里用的是get的,你要采其他的新闻只要抓下包获取post数据就行了,这个新闻分类抓包的post数据
  1. number=3&type=%E5%8E%82%E5%95%86%E6%96%B0%E9%97%BB
复制代码
;number是第几页,type是新闻分类的名字也就是类型

下面是主要的函数
  1. //更多列表
  2. function newsList(number,type){
  3.         var url="/news.do?method=newsList";
  4.         $j.post(url,{number:number,type:type},function (xml){
  5.                 $j('#insid').html(xml);
  6.         });
  7. }
复制代码
;点more时触发这个函数,发生了post请求$j.post
  1. //分页
  2. function nextTo(number,type){
  3.         if(type=="搜索"){
  4.                 newsSo(number);
  5.         }else{
  6.                 newsList(number,type);
  7.         }
  8. }
复制代码
;点分页触发这个,又间接触发了newsList(),同样发生了post请求

$j.post的源码:
  1. post: function( url, data, callback, type ) {
  2.                 if ( jQuery.isFunction( data ) ) {
  3.                         callback = data;
  4.                         data = {};
  5.                 }

  6.                 return jQuery.ajax({
  7.                         type: "POST",
  8.                         url: url,
  9.                         data: data,
  10.                         success: callback,
  11.                         dataType: type
  12.                 });
  13.         },
复制代码
jq文件太多代码了,大概明白了是提交到http://www.cmt178.com/news.do?method=newsList地址,post数据是
  1. number=分页&type=新闻类型
复制代码



可以用源代码查看器看返回的代码




本帖子中包含更多资源

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

x
 楼主| 发表于 2010-12-15 13:20:33 | 显示全部楼层
cityber你的火爆展会网做好了,采集的时候采集线程1,间隔长些,post的采集时需要些时间的,往往很慢

本帖子中包含更多资源

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

x
发表于 2010-12-17 13:51:54 | 显示全部楼层
本帖最后由 jiajufan 于 2010-12-17 13:55 编辑

谢谢zhouchanglin!

求:http://club.gigabyte.cn/Zhidao_xjj/  这个站的规则   做了好长时间还是没做出来
 楼主| 发表于 2010-12-17 19:33:35 | 显示全部楼层
本帖最后由 zhouchanglin 于 2010-12-17 19:38 编辑

回复 14# jiajufan


做好了,这是页脚部分的源码
  1. <div id="AspNetPager1">
  2. <div style="width:60%;float:left;">
  3.         <a disabled="disabled" style="margin-right:5px;">首页</a><a disabled="disabled" style="margin-right:5px;">上一页</a><span style="margin-right:5px;font-weight:Bold;color:red;">1</span><a href="javascript:__doPostBack('AspNetPager1','2')" style="margin-right:5px;">2</a><a href="javascript:__doPostBack('AspNetPager1','3')" style="margin-right:5px;">3</a><a href="javascript:__doPostBack('AspNetPager1','4')" style="margin-right:5px;">4</a><a href="javascript:__doPostBack('AspNetPager1','5')" style="margin-right:5px;">5</a><a href="javascript:__doPostBack('AspNetPager1','6')" style="margin-right:5px;">6</a><a href="javascript:__doPostBack('AspNetPager1','7')" style="margin-right:5px;">7</a><a href="javascript:__doPostBack('AspNetPager1','8')" style="margin-right:5px;">8</a><a href="javascript:__doPostBack('AspNetPager1','9')" style="margin-right:5px;">9</a><a href="javascript:__doPostBack('AspNetPager1','10')" style="margin-right:5px;">10</a><a href="javascript:__doPostBack('AspNetPager1','11')" style="margin-right:5px;">...</a><a href="javascript:__doPostBack('AspNetPager1','2')" style="margin-right:5px;">下一页</a><a href="javascript:__doPostBack('AspNetPager1','79')" style="margin-right:5px;">尾页</a>&nbsp;&nbsp;<input type="text" value="1" name="AspNetPager1_input" id="AspNetPager1_input" onkeydown="ANP_keydown(event,'AspNetPager1_btn');" style="width:30px;" /><input type="submit" value="go" name="AspNetPager1" id="AspNetPager1_btn" onclick="if(ANP_checkInput('AspNetPager1_input',79)){__doPostBack('AspNetPager1','')} else{return false}" />
  4. </div><div style="width:40%;float:left;">
  5.         [共79页/当前为第1页]
复制代码
有2种方式翻页,1直接点击页码翻页,2输入页数,点提交按钮,规则里有用的是输入页数的post数据

首先这个页面只有一个表单
  1. <form name="form1" method="post" action="" id="form1">
复制代码
,所有都是提交到这个表单

点击页数,路第9页,触发
  1. <a href="javascript:__doPostBack('AspNetPager1','9')" style="margin-right:5px;">9</a><
复制代码
,:__doPostBack函数源码
  1. var theForm = document.forms['form1'];
  2. if (!theForm) {
  3.     theForm = document.form1;
  4. }
  5. function __doPostBack(eventTarget, eventArgument) {
  6.     if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
  7.         theForm.__EVENTTARGET.value = eventTarget;
  8.         theForm.__EVENTARGUMENT.value = eventArgument;
  9.         theForm.submit();
  10.     }
  11. }
复制代码
这样
  1. <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
  2.         <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
复制代码
第1中提交方式,点击页码提交,路点了第9页,
  1. __doPostBack('AspNetPager1','9')
复制代码
__EVENTTARGET=AspNetPager1;__EVENTARGUMENT=9 ,所以说;__EVENTARGUMENT代表页码,而这样的提交那个点击按钮参数没有被提交
  1. ><input type="submit" value="go" name="AspNetPager1" id="AspNetPager1_btn" onclick="if(ANP_checkInput('AspNetPager1_input',79)){__doPostBack('AspNetPager1','')} else{return false}" />
复制代码
我想这个参数的有无就判断了是哪中提交方式了,而这个没有提交按钮的参数,接收的程序就会把__EVENTARGUMENT的值作为页码;

这种方式的post数据时
  1. __VIEWSTATE=&nav_hp=4&AspNetPager1_input=post随机值&_EVENTTARGET=AspNetPager1&__EVENTARGUMENT=分页
复制代码
,这里略去了一些不必要的参数



第2中提交方式输入页数,点提交按钮:
  1. ;<input type="text" value="1" name="AspNetPager1_input" id="AspNetPager1_input" onkeydown="ANP_keydown(event,'AspNetPager1_btn');" style="width:30px;" /><input type="submit" value="go" name="AspNetPager1" id="AspNetPager1_btn" onclick="if(ANP_checkInput('AspNetPager1_input',79)){__doPostBack('AspNetPager1','')} else{return false}" />
复制代码
  1. onclick="if(ANP_checkInput('AspNetPager1_input',79)){__doPostBack('AspNetPager1','')} else{return false}" />
复制代码
首先用ANP_checkInput函数检查输入的页数是否符合要求,符合即会执行doPostBack函数,与方式1提交的不同在于doPostBack的第2个参数,一个是页码,一个是空字符,而第2中提交会把提交按钮参数
  1. <input type="submit" value="go" name="AspNetPager1
复制代码
,提交,这样的提交因为提交了按钮参数,接收的程序就会把输入框中的页码做为返回的页码

输入页数,点提交按钮post数据:
  1. __VIEWSTATE=post随机值&nav_hp=4&AspNetPager1_input=分页&AspNetPager1=go&_EVENTTARGET=AspNetPager1&__EVENTARGUMENT=
复制代码
规则

本帖子中包含更多资源

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

x
发表于 2010-12-17 23:01:47 | 显示全部楼层
本帖最后由 jiajufan 于 2010-12-17 23:04 编辑

回复 15# zhouchanglin


    谢谢zhouchanglin!非常感谢!感谢您的劳动!感谢您的时间!
发表于 2010-12-18 01:02:20 | 显示全部楼层
http://www.99mm.cc/meitui/761.html 内容页的分页怎么采集呢!
 楼主| 发表于 2010-12-18 13:19:20 | 显示全部楼层
回复 17# nr05

做好了,这个需要插件,你是标准版的可以用

路过只是想要图片地址,可以不用采分页,但还是要用插件循环生成图片地址,其实就是通过插件在获取的网页源码的尾部追加图片的源码和火车可以识别的分页的源码,
插件在网页源码的尾部追加了全部图片源码的区域和分页的区域代码;







这里是插件,解压后把插件用在采内容时,规则分页设置可以参考 ,测试时你会在内容标签看到尾部的增加的代码,这就是在html源码基础上追加的效果

本帖子中包含更多资源

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

x
发表于 2010-12-18 16:15:34 | 显示全部楼层
感谢LZ,好人啊。
发表于 2010-12-23 14:51:10 | 显示全部楼层
又来麻烦LZ了,
http://www.all2car.com/Company/S ... %3AcValue=1&c=1这个地址怎么采啊
我用AspNetPager1&__EVENTARGUMENT=[分页]这样不行呢
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

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

GMT+8, 2024-11-18 18:37

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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