返回信息流新手刚开始学爬虫,想通过爬虫获取百度搜索结果的原始链接。通过Firefox的HttpFox插件,发现在搜索结果的URL是加密过的,例如:
http://www.baidu.com/link?url=w0Kz2y9t3Ne9YtTTkZ1M_ToY43HWy3tia4djxC8u9CC
点击链接之后,会向该链接发送GET,从服务器得到的回复中包含真实URL:
http://www.python.org
想通过python爬虫模拟这个过程:
1.获取关键字,构造百度搜索URL(借助Firefox自带的百度搜索,构建简化的搜索链接)
2. 通过pyquery获取页面中所有的搜索结果URL:
[(site.attr('href'), site.text().encode('utf-8')) for site in self.page('div.result.c-container h3.t a').items()]
//不知道这个items()方法在这里用的对不对
3. 向加密后的URL发起GET请求,试图获得HttpFox中获取到的content
4. 提取真实URL,进行显示
目前可以获取到页面加密后的URL(但是针对相同的一个网址每次获取的加密后URL都不同,可以理解),但是第3步获取到的页面,不是httpfox中的那个页面,而是很复杂的页面(应该是跳转之后到页面)。
尝试了requests.get()中设定参数allow_redirects=False,但是获取的回复也不是httpfox的那个content。
想请各位大拿指点一二。。。。
附件是代码(贴出来略啰嗦)
附件(1.5KB) baiduSearch.py
这是一条镜像帖。来源:北邮人论坛 / python / #8410同步于 2015/8/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]如何获取百度搜索结果的真实URL
frozensun
2015/8/30镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复