首页 新闻 会员 周边 捐助

爬虫 , 网页 请求时跳转两次,怎么办??

0
悬赏园豆:30 [已解决问题] 解决于 2019-07-26 12:05

请求第一次的时候

只要不是从原网页的打开, 那么第一次进入网页的时候,
都会跳到验证页面,但是马上跳到正常页面,
但是我用requests抓的时候只能获取到这验证页面,而得不到真正的页面,

请问下, 这是什么原理? 这个要怎么破呢?

跳到正常页面

之前我还以为是我没有加referer的原因, 后来
我把referer加上, 还是都没用,
再后来,模拟测试了下, 然后把上次的cookie带入还没解决.

现在我真的晕了, 不知道这个是什么原理, 要怎么解决?

木头人下的321的主页 木头人下的321 | 初学一级 | 园豆:110
提问于:2019-07-23 20:02
< >
分享
最佳答案
0

你所看到的url不一定是页面uri。你抓美团嘛,页面只有js。

你放心只要参数齐备,机器是不会骗人的。

收获园豆:20
花飘水流兮 | 专家六级 |园豆:13595 | 2019-07-23 22:26

抓的是租房信息, 但是我不知道还需要什么参数可以添加, 然后一直请求下来的是短暂的验证页面.找不到参数,

木头人下的321 | 园豆:110 (初学一级) | 2019-07-24 10:55

@木头人下的321: 直接获取 tcp 流,这样比对不就简单直白了。然后测试写也可以不用http去写,直接tcp 发送就测试了。 这样干净直接。

实际这种不一定非得http请求模式去赚取,有的网站网页 组成 比较复杂,简单直接的方式就是浏览器模式,这样直接跳过所有过程。

花飘水流兮 | 园豆:13595 (专家六级) | 2019-07-24 11:03

@花飘水流兮: 其实 不太懂你所得这个意思. 这个也好像是跨域的问题,

木头人下的321 | 园豆:110 (初学一级) | 2019-07-26 12:06

@木头人下的321: fiddler 看raw,自己代码写直接tcp copy过去,这样就能确保你的请求和 被copy的请求是一致的。http是基于tcp的应用层协议,不是非要用http模块去干,可以从tcp层干,而http本来是字符类型的,易看易copy。

花飘水流兮 | 园豆:13595 (专家六级) | 2019-07-26 12:15
其他回答(2)
0

你爬取的只是静态信息而已动态信息并没有爬取到,建议用selenium模块

小小咸鱼YwY | 园豆:3312 (老鸟四级) | 2019-07-24 12:34
0

看一下第一次请求返回的内容。盲猜是一段js,需要执行。

收获园豆:10
Masako | 园豆:1893 (小虾三级) | 2019-07-24 16:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册