为什么使用python中的urllib获取到的网页和用浏览器看到的网页源代码不一样?

Sarify 2014-03-16 09:28:32
我在用python写一个小爬虫,在使用python的urllib来获取网页信息的时候,发现python得到的网页信息跟我用chrome查看网页源代码得到的信息有点不一样,例如我获取http://www.zhihu.com/question/23049278这个页面的信息的一个不同之处如下:
用urllib读取到的:

用chrome查看源代码看到的:



请问为什么会出现这种状况呢,怎么样才能获取到跟浏览器显示相同的网页源代码?
...全文
1435 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwilliam1 2016-04-09
  • 打赏
  • 举报
回复
你好,我也有一样的问题,能否恳求你把源代码共享给我?因为我实在是着急,然后编程基础实在太差,一天内学不会。跪求能分享给我,万分感谢!
GreeceZeus 2015-07-15
  • 打赏
  • 举报
回复
浏览器打开html文件时会自动下载关联的脚本 Javascript的运行就有可能会修改html文件 浏览器中是修改之后的html urllib请求的只是第一手的html
ForestDB 2015-07-14
  • 打赏
  • 举报
回复
Web本身是动态的。 你可能需要模拟各种动态,比如session、cookie、js等等。
miangmiang咩 2015-07-14
  • 打赏
  • 举报
回复
那怎么处理呀?
乌拉拉_ 2015-07-14
  • 打赏
  • 举报
回复
应该是cookie的问题,把自己的登录信息加到cookie里再发请求就行了~~
Sarify 2014-03-17
  • 打赏
  • 举报
回复
我知道原因了,我用浏览器是用账户登陆了的,用urllib来获取网页的时候是没有登陆的,所以信息会不一样
Sarify 2014-03-17
  • 打赏
  • 举报
回复
引用 1 楼 bugs2k 的回复:
试试设置下User-Agent 为对应的浏览器
改了还是跟原来一样
Sarify 2014-03-17
  • 打赏
  • 举报
回复
引用 2 楼 CDSoftwareWj 的回复:
应该是一样的啊,唯一不一样的可能就是JS动态运行后的结果了,这个需要JS引擎了。。。
还有一点忘记说了,用urllib抓取的同一个网页内,有些人的信息可以显示,有些人不能显示,应该不是js引擎的问题吧,要不然应该都显示不了啊
CDSoftwareWj 2014-03-16
  • 打赏
  • 举报
回复
应该是一样的啊,唯一不一样的可能就是JS动态运行后的结果了,这个需要JS引擎了。。。
bugs2k 2014-03-16
  • 打赏
  • 举报
回复
试试设置下User-Agent 为对应的浏览器

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧