Panyway 发表于 2014-07-01 15:42

python如何获取网页的最终页面?

大家好!
我想用python获取一个网页的源代码(即在chrome中点右键------>查看框架的源代码),但是用urllib2.urlopen()获取的不是最终的HTML代码(是在chrome中点右键------->查看网页源代码 的代码),这个代码很简短。大家有什么好的办法吗?

reyleon 发表于 2014-07-01 20:09

不是源码么? 我看到的是源码啊

t = urllib2.urlopen(url)
f = t.read()
print f

不是源码?

Panyway 发表于 2014-07-02 09:25

回复 2# reyleon

不是网页的最终源码。以附件为例:




里面的1.htm是网页的最终源码,即在chrome中点右键------>查看框架的源代码获得的代码,2.htm是在chrome中点右键------->查看网页源代码获得的代码,也就是用urllib2.urlopen()获得的代码。或者用哪种方式把2转化为1吗?


   

reyleon 发表于 2014-07-02 10:35

哦哦哦 有些网页没有 "查看框架源代码" 呀.你给个 URL 来看看啊

icymirror 发表于 2014-07-02 11:41

回复 4# reyleon
楼主attached的附件里面有网页地址的,只是这是个https的,没有办法打开,呵呵。

Panyway 发表于 2014-07-02 12:46

回复 4# reyleon

不好意思。。我指的是SAP的在线note系统,登录需要用户名密码验证权限的。。由于项目需要有时候得手动下载很多note,我就想用python自动化实现。
我想用Selenium+Python应该也可以,只是Selenium能处理第一次访问网站时弹出的身份认证对话框吗?求大神指导。。


   

icymirror 发表于 2014-07-02 18:31

回复 6# Panyway
在没有找到验证码机制之前,建议你每次使用之前,手工登录,把对应的cookie取出来,然后让python去抓取内容。
这个连接有人正好在问cookie的事情,你也可以看下。

Panyway 发表于 2014-07-02 19:47

回复 7# icymirror
多谢了。。登录那个还好处理,用urllib2模块的urllib2.HTTPBasicAuthHandler()和urllib2.request()都能实现登录,但获取不了最终源码;用Selenium和Mechanize有很大限制,而且最开始的那个身份认证弹出框我不知怎么处理。。现在是没辙了。

   

icymirror 发表于 2014-07-02 23:10

回复 8# Panyway
一定会有解决方法的。
既然是得到了框架代码,那框架代码里面会包含对应的被嵌套的页面的地址,你可以用这个去试着获取下。
或者,如果不确定的话,你可以打开浏览器工具或者附件(IE是用F11,Firefox/chrome有插件),去跟踪下打开的页面的实际URL也可以啊。
反正页面基本上就是HTTP协议下面的数据交互之后的展示,去跟踪下还是可以找到不少东西的。

Panyway 发表于 2014-07-03 09:27

回复 9# icymirror
IE是F12吧。。
能找到获取最终页面的那个Http请求,是用post方式的,但那个url直接访问不了,整体过程很复杂。先生能私下交流下吗?我给你发消息了。。

   
页: [1] 2
查看完整版本: python如何获取网页的最终页面?