鱼C论坛

 找回密码
 立即注册
查看: 11239|回复: 8

[已解决]我用浏览器访问一个链接http302,而用python返回200

[复制链接]
发表于 2015-12-21 13:21:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个问题已经超出我的理解范围了
我用浏览器访问一个链接http302,而用python返回200,
浏览器返回的headers里面有我想要的地址,而python返回的页面显示的是分享已经没有了!

为什么我用python访问和浏览器访问得到的结果是不一样的,对服务器来说,这两者有什么区别吗?

举个例子,http://pan.baidu.com/s/1pJypFz9密码:l0kd
以下是我的请求头,模仿IE11
  1. head = {'Connection': 'keep-alive',
  2.         'Referer': 'https://www.baidu.com/',
  3.         'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0)like Gecko',
  4.         'Accept': '*/*',
  5.         'Accept-Encoding': 'gzip;deflate',
  6.         'Accept-Language': 'zh-CN,zh;q=0.8'}

  7. #自动处理cookies
  8. cj = cookiejar.MozillaCookieJar(filename='百度cookies.txt')
  9. cj.load()
  10. cookies_ = urllib.request.HTTPCookieProcessor(cj)
  11. opener  = urllib.request.build_opener(cookies_)
复制代码
最佳答案
2015-12-21 17:13:42
百度为了防止爬虫用302 redirect: 302来做跳转,而静态的Python爬虫只能爬到跳转之前的网页,自然就爬不到真正的内容了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-21 17:13:42 | 显示全部楼层    本楼为最佳答案   
百度为了防止爬虫用302 redirect: 302来做跳转,而静态的Python爬虫只能爬到跳转之前的网页,自然就爬不到真正的内容了

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-21 21:16:33 | 显示全部楼层
hldh214 发表于 2015-12-21 17:13
百度为了防止爬虫用302 redirect: 302来做跳转,而静态的Python爬虫只能爬到跳转之前的网页,自然就爬不到真 ...

为什么python不能反回http 302,
是服务器从那识别出,这是爬虫访问,不是浏览器访问,从而给出不同的返回数据
还是浏览器怎么解读出HTTP302的呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-21 21:59:08 | 显示全部楼层
FDMa 发表于 2015-12-21 21:16
为什么python不能反回http 302,
是服务器从那识别出,这是爬虫访问,不是浏览器访问,从而给出不同的返 ...

情况很多,很多网站的一些资源只允许站内访问,通过js的ajax来异步GET/POST的,所以要分析一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-21 22:36:32 | 显示全部楼层
hldh214 发表于 2015-12-21 21:59
情况很多,很多网站的一些资源只允许站内访问,通过js的ajax来异步GET/POST的,所以要分析一下

那百度分享的这个链接只是直接在浏览器输入地址,
这个url是第一个链接,没有javescript事件啊

我的理解是浏览器和python都是客户端,只要向服务器发送确定的数据,返回的数据也应该是一样的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-21 22:44:41 | 显示全部楼层
FDMa 发表于 2015-12-21 22:36
那百度分享的这个链接只是直接在浏览器输入地址,
这个url是第一个链接,没有javescript事件啊

好吧,确实不知道你这个情况怎么解决,抱歉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-21 23:02:31 | 显示全部楼层
hldh214 发表于 2015-12-21 22:44
好吧,确实不知道你这个情况怎么解决,抱歉

仍然感谢你的答复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-5 14:15:29 | 显示全部楼层
您好~
请问一下,你以前遇到这个问题后来解决了吗?
我最近c#遇到了同样的问题。。折腾好几天了不知道该怎么解决呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-21 20:16:13 | 显示全部楼层
SamSuZhang 发表于 2016-7-5 14:15
您好~
请问一下,你以前遇到这个问题后来解决了吗?
我最近c#遇到了同样的问题。。折腾好几天了不知道该 ...

python自动完成302的跳转,遇到302不会返回,继续访问loction
问题在百度检查host,host不对的话,自动跳转error404
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-18 21:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表