我有个生成结果的页面,这个页面里有 ajax ,现在用 urllib2 抓去的时候直接给我返回静态页面了,里面都是没有数据的,只有个壳。。。
1
exoticknight Sep 17, 2015
跟普通请求一样的库
你去看看代码中的 ajax 请求的地址、方法和参数是什么 |
2
ccbikai PRO User-Agent 注意一下, 再看看参数有没有什么特别的
|
3
hahasong Sep 17, 2015
request
|
4
cloverstd Sep 17, 2015 我想应该是 cookies 没带上
想简单就用 requets 的 session 或者用 urllib2 自己处理 cookies |
5
WKPlus Sep 17, 2015 ajax 是另外一次请求,你需要发看看 ajax 发了什么请求,然后直接发那个请求就好了。
当然对于 ajax 请求,服务器还可能验证其他的,比如 cookie 、 ua 之类的 |
6
mulog Sep 17, 2015 你要是只抓那一两个页面 可以自己去看看那个 ajax 请求是什么 然后去抓那个请求就好了
如果是数量比较多或者要抓取的页面不确定 那么你可能需要 Selenium |
7
CYKun Sep 17, 2015
selenium ,这是一个大坑
|
10
ljbha007 Sep 17, 2015
注意 cookie, user-agent
还有个 x-requested-with 的 header |
11
say2old Sep 18, 2015
你这个问题和用哪个库无关。请先用 Firefox 或者 Chrome 截获 Ajax 请求 API 的地址,以及 header, body, cookie 所有相关信息。然后再用 urllib2 去模拟这个请求拿数据。除了 urllib2 ,可以考虑用 python 的 requests 包,把 http 访问的相关操作封装的很好,很好用
|