返回信息流只爬一个网站的内容,目标比较明确,但是爬的过程中遇到换页按钮没有链接的问题。请问是怎么回事?
这是一条镜像帖。来源:北邮人论坛 / search-engine / #11313同步于 2013/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SearchEngine机器人发帖
请教关于爬虫的问题
threbody
2013/4/26镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
http://dujia.qunar.com/p/listapi?action=routeResult&tm=l01&tp=1366970532694_123&ts=1366970541208_837&dep=%E5%8C%97%E4%BA%AC&view=&groupId=&query=%E6%BC%93%E6%B1%9F&requery=&filterType=&date=&type=&sight=&subject=&dep2=&itineraryday=&fit=&arrive=&traffic=&feast=&obpop=desc&exec_time=&obprice=&price=&obhotellv=&hotellv=&obsupplier=&supplier=&b2c=&hotspring=&hotelPlace=&hotelLevel=&hotelType=&hotelId=&playId=&subDate=&pageNo=2¤tTicket=&payType=&tuan=&city=&ti=4&toprecommend=0
请问这个是怎么来的?
【 在 binux 的大作中提到: 】
: http://dujia.qunar.com/p/listapi?action=routeResult&tm=l01&tp=1366970532694_123&ts=1366970541208_837&dep=%E5%8C%97%E4%BA%AC&view=&groupId=&query=%E6%BC%93%E6%B1%9F&requery=&filterType=&date=&type=&sight=&subject=&dep2=&itineraryday=&fit=&arrive=&traffic=&feast=&obpop=desc&exec_time=&obprice=&price=&obhotellv=&hotellv=&obsupplier=&supplier=&b2c=&hotspring=&hotelPlace=&hotelLevel=&hotelType=&hotelId=&playId=&subDate=&pageNo=2¤tTicket=&payType=&tuan=&city=&ti=4&toprecommend=0
你就不能自己查一下AJAX什么意思吗?
【 在 threbody 的大作中提到: 】
: 之前没接触过AJAX,你的意思是使用AJAX就可以得到我想要的那个网站的旅游信息?
:
和我以前问你的问题差不多,后来才知道可以用工具查看请求过程。谢谢你以前的回答,想起来还是很感激
【 在 binux 的大作中提到: 】
: 你就不能自己查一下AJAX什么意思吗?
花了3天时间把W3School上面的大部分web相关的教程看了一遍,然后试用了一下chrome的DevTools,明白了这个页面的刷新只是更新了页面的部分内容(AJAX),即旅游项目信息,信息是通过JSON传过来的。
虽然还没有搞定如何爬这种网页,先表示感谢!
【 在 binux 的大作中提到: 】
: 你就不能自己查一下AJAX什么意思吗?
AJAX也不过是普通的HTTP请求罢了
既然知道了页面内容是通过AJAX得到的
那么直接让爬虫发出AJAX请求就好了
这在审查元素 > network 里面都有
【 在 threbody 的大作中提到: 】
: 花了3天时间把W3School上面的大部分web相关的教程看了一遍,然后试用了一下chrome的DevTools,明白了这个页面的刷新只是更新了页面的部分内容(AJAX),即旅游项目信息,信息是通过JSON传过来的。
: 虽然还没有搞定如何爬这种网页,先表示感谢!
:
恩,现在已经能爬下来数据了。
准备系统的爬一次,估计要发送10万这个数量级的http请求,担心被对方网站封掉,网上查的有三个解决办法:
一是request header尽量模仿浏览器,这个除了cookie其他都设置了,如下:
req_header = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6',
'Accept':'application/json, text/javascript, */*',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding':'gzip,deflate,sdch',
'Host':'dujia.qunar.com',
'Connection':'close',
'Referer':http_refer ,
'X-Requested-With':'XMLHttpRequest'
}
二是设置代理,不断更换ip,这个操作比较麻烦,还没做;
三是限制发起http请求的频率,这个不太清楚多久一次比较合适,所以想请教一下
【 在 binux 的大作中提到: 】
: AJAX也不过是普通的HTTP请求罢了
: 既然知道了页面内容是通过AJAX得到的
: 那么直接让爬虫发出AJAX请求就好了
: ...................