wangrutie
发表于 2011-2-26 00:32:34
http://www.csrcsc.com/personal/personalList.aspx
这个网站怎么采集分页呀,请楼主帮忙,万分感谢!
gian
发表于 2011-2-28 01:07:58
采集不到详细描述里面的图片地址,希望有热心人能帮助一下~万分感谢
http://www.kaimei-nan.com/products.aspx?id=DY04357
zhouchanglin
发表于 2011-2-28 13:29:21
本帖最后由 zhouchanglin 于 2011-2-28 13:34 编辑
回复 71# wangrutie
这个网站是比较普遍的post分页网站,使用__doPostBack(eventTarget, eventArgument)控制分页请求
只要了解它的翻页触发方式,就很容易解决这个问题,这个网站应该可以使用3种方式翻页,1.直接输入页码,点翻页按钮2.点击下一页,这个不太方便3.直接点击页码
所以只要考虑它们触发的事件,就可以得到post数据,找到相应部分的源码
1.直接输入页码,点翻页按钮部分跳转到:<input name="SQLPager1$TextboxGoToPage" type="text" maxlength="5" id="SQLPager1_TextboxGoToPage" style="width:50px;" /> <input type="submit" name="SQLPager1$btnGoToPage" value="确定" id="SQLPager1_btnGoToPage" class="button" onmouseover="this.className='buttonover'" onmouseout="this.className='button'" />可知只是提交了表单,这样SQLPager1$TextboxGoToPage就是最重要的post参数,代表分页,而提交按钮参数SQLPager1$btnGoToPage也是,表明是按了翻页按钮的方式提交的数据
由于数据可能要编码,我试过自己组合的不行,所以我用抓包工具获取了post数据__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=&__SCROLLPOSITIONX=0&__SCROLLPOSITIONY=0&__EVENTVALIDATION=&dlstFilter=%D0%D5%C3%FB&txtFind=%CA%E4%C8%EB%B9%D8%BC%FC%D7%D6&SQLPager1%24DropDownListItemsPerPage=30&SQLPager1%24TextboxGoToPage=[分页]&SQLPager1%24btnGoToPage=%C8%B7%B6%A8&SQLPager1%24DropDownListPagesPerPageGroup=5里面参数的意识:__EVENTTARGET------------判断是哪种请求,这个网站可以判断每页显示数量的改变,每组显示页码数量
_SCROLLPOSITIONX=0-------判断滚动条位置x,没有用处好像
__SCROLLPOSITIONY=0--------判断滚动条位置y
dlstFilter------查找指标
txtFind-----------------------关键字,这个数据里德%CA%E4%C8%EB%B9%D8%BC%FC%D7%D6应该是请搜索关键字
SQLPager1%24DropDownListItemsPerPage=30----------------------每页显示数量30
SQLPager1%24TextboxGoToPage=[分页]------------------------输入的页码,代表分页
SQLPager1%24btnGoToPage=%C8%B7%B6%A8---------------------按钮提交,%C8%B7%B6%A8是确定
SQLPager1%24DropDownListPagesPerPageGroup=5--------------每组显示5个页码
这些参数修改下数值就会是不同的效果了,路修改SQLPager1%24DropDownListItemsPerPage=10,那么每页显示10条记录
.直接点击页码部分源码:修改下,这种方式行不通,每页显示5个页码,按钮name是1-5循环的,而value是递增的,所以这种方式不适合这个网站
第5页<input type="submit" name="SQLPager1$QuickGoTo5" value="5" id="SQLPager1_QuickGoTo5" title="跳至5页"第4页<input type="submit" name="SQLPager1$QuickGoTo4" value="4" id="SQLPager1_QuickGoTo4" title="跳至4页"可以知道页码点击是个提交按钮,而name是有规律的,包含分页信息,所以可以用SQLPager1$QuickGoTo[分页]=[分页]提交表单,只要把输入页码方式的的post数据做些修改就能得到页码点击的post数据:去掉SQLPager1%24btnGoToPage按钮,也可以去掉页码输入框SQLPager1%24TextboxGoToPage__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=&__SCROLLPOSITIONX=0&__SCROLLPOSITIONY=0&__EVENTVALIDATION=&dlstFilter=%D0%D5%C3%FB&txtFind=%CA%E4%C8%EB%B9%D8%BC%FC%D7%D6&SQLPager1%24DropDownListItemsPerPage=30&SQLPager1%24QuickGoTo[分页]=[分页]&SQLPager1%24DropDownListPagesPerPageGroup=5我测试的规则使用的时第1种post数据,获取列表分页,内容页标签没有设置
zhouchanglin
发表于 2011-2-28 14:23:08
回复 72# gian
查看源码,这个网站的内容页首先调用了个框架<iframe id="frame_content" src="picFrm.aspx?id=DY04357" width="767" marginheight="0"
align="middle" scrolling="no" frameborder="0"></iframe>,打开这个地址http://www.kaimei-nan.com/picFrm.aspx?id=DY04357,这个地址里装有商品详情的处理函数ajax请求,并不是可以直接看到图片内容的页面,查看这个页面的源码<body onload="edit_Rs('DY04357')" >当文档加载后edit_Rs('DY04357'),这个就是商品详情的处理函数ajax请求,传的参数是商品id
下面是edit_Rs源码var url = "picFrmAjax.aspx?type=";
//查看记录edit_Rs('DY04357')
function edit_Rs(id)
{
var pars = "id=" + id +"&aa="+ (new Date().getTime().toString(36));//ajax请求的参数
new Ajax.Request(url+"2",//url =picFrmAjax.aspx?type=2
{
method: "get",//post method请求方式get
parameters:pars,
onSuccess : function(response) //callback function成功后的处理函数
{
$("divJJ").innerHTML = response.responseText; //返回的数据装在divJJ层理
//alert($("iinfo").value );//oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
}
}
);
}<body onload="edit_Rs('DY04357')" >
<div id="divJJ" align="center" class=font></div>//divJJ层
</body>通过上面函数可以知道ajax请求地址是http://www.kaimei-nan.com/picFrmAjax.aspx?type=2&id=DY04357&aa=
type=2--------类型
id=DY04357------------商品id,关键的
aa=------------时间字符串,没什么用
这样由内容页到这个地址是2次,属于多页的多页,不过因为商品id可以在内容页的框架里获得,所以可以直接组合成ajax请求地址,这样只要添加多页即可采集到了
只是这个ajax请求地址里德源代码,开始 结束位置不好确定,是不是全是图片,一样格式的呢,这个站商品详情时用图片做的?
gaozhonghua1211
发表于 2011-2-28 16:39:14
http://1x2.bet007.com/oddslist/404905.htm
想采集欧洲赔率,源文件全是js代码,怎么采集啊,好心人帮下,万分感激
zhouchanglin
发表于 2011-2-28 20:32:52
本帖最后由 zhouchanglin 于 2011-2-28 20:37 编辑
回复 75# gaozhonghua1211
,这个网站全部是js组合的头部 主体 页尾HTML
导出到excel http://1x2.bet007.com/Export2Excel.aspx?id=404905,直接采这个就行
好像搞错了,这是列表页?
wangrutie
发表于 2011-3-1 08:21:01
回复 73# zhouchanglin
谢谢,非常感谢!!!!
gaozhonghua1211
发表于 2011-3-1 15:24:37
回复 76# zhouchanglin
好像有点意思,不过Export2Excel.aspx?列出的只是部分数据,怎能列出所有数据?
zhenhugo
发表于 2011-3-8 23:11:24
http://www.9swing.com/ 这个网站要如何采集全文。。因为要注册用户且登录后里的内容是js调用的
vmans_liu
发表于 2011-3-9 10:09:18
本帖最后由 vmans_liu 于 2011-3-9 10:34 编辑
http://www.ecosopp.com/ecosway/cn/ProductList_cn.jsp?categoryRefNo=300005&pageNo=1
用cn695400登录 http://www.ecosopp.com/ecosway/cn/ShopLoginLink_cn.jsp
,谢谢楼主先