首页 新闻 会员 周边 捐助

如何用python提取网页中框架的源代码

0
悬赏园豆:100 [已解决问题] 解决于 2015-10-03 13:13

直接查看源代码的话是看不到这一段的,
我在审查元素内找到了这个网页的地址,直接看的话 是可以看到源代码
但是新窗口打开的话 ,里面的内容是空白的
怎么用python把这一段源代码抓出来啊

求提供思路

图1

图2

在下良辰是也的主页 在下良辰是也 | 初学一级 | 园豆:74
提问于:2015-09-30 22:25
< >
分享
最佳答案
0

Firebug切换到Network栏,查看HTTP协议头,用python模拟把这些协议头一起发出去。

特别注意Referer协议头。

另:如果有时间建议浏览下HTTP协议

收获园豆:100
iVechan | 菜鸟二级 |园豆:351 | 2015-10-02 09:51
1 import httplib 
2 url = "http://www.javbus.in/ajax/uncledatoolsbyajax.php?gid=25093650834&lang=zh&img=http://pics.dmm.co.jp/digital/video/jux00379/jux00379pl.jpg&uc=0&floor=186"
3 conn = httplib.HTTPConnection('104.27.156.223')
4 conn.request('GET',url)
5 response = conn.getresponse()
6 res = response.read()
7 for i in res:
8     print i
View Code

代码优化了下,发现得出来的

<
s
c
r
i
p
t

t
y
p
e
=
"
t
e
x
t
/
j
a
v
a
s
c
r
i
p
t
"
>






$
(
'
#
m
o
v
i
e
-
l
o
a
d
i
n
g
'
)
.
h
i
d
e
(
)
;






<
/
s
c
r
i
p
t
>

就是图2的查看源代码的内容,并没有图1中的内容,怎么样才能得到图1中的内容阿

在下良辰是也 | 园豆:74 (初学一级) | 2015-10-02 10:02

@在下良辰是也: 你的代码没有添加该有的协议啊。

iVechan | 园豆:351 (菜鸟二级) | 2015-10-02 17:18

@在下良辰是也: 我这里请求这个地址看不到任何内容,抓包也看不到任何数据。而你第1幅图get那个请求确实响应了数据,可能原因我大概想到了3个:①与http请求头referer有关。就是可能这个网站做了防盗链处理,服务器那边会判断你是从哪个页面转跳过来的;②与cookies有关。可能你需要在访问这个页面之前访问其他的某个页面,这样服务器会给你写cookies,你要带着这个cookies才能成功访问这个页面(以前抓豆瓣电影的时候抓了几百部就被禁了,就是没有带cookies);③与session有关。就是需要登录。

学数学的程序猿 | 园豆:252 (菜鸟二级) | 2015-10-02 17:29

@iVechan: 话说你这都啥网站,抓这种网站做什么。。。

学数学的程序猿 | 园豆:252 (菜鸟二级) | 2015-10-02 17:31

@学数学的程序猿: 大哥,你AT错人了~~~~~~哭

iVechan | 园豆:351 (菜鸟二级) | 2015-10-02 17:44

@学数学的程序猿: 你的答案比我清晰,我感觉应该就是referer的问题。如果是cookie问题,肯定会返回一些Error

iVechan | 园豆:351 (菜鸟二级) | 2015-10-02 17:45

@学数学的程序猿: 就是无聊,多学点东西

那个"与http请求头referer有关"那这样的话应该怎么做呢

在下良辰是也 | 园豆:74 (初学一级) | 2015-10-02 18:02

@在下良辰是也: python没学过就不知道了,查文档或百度吧。估计是conn.head("referer", "xxx")类似的吧。。。

学数学的程序猿 | 园豆:252 (菜鸟二级) | 2015-10-02 18:28

@iVechan: 不好意思AT错了。。。你说的有道理,一般都是返回些Error。但也不能排除这种可能,这还要看服务端代码是怎么写的。

学数学的程序猿 | 园豆:252 (菜鸟二级) | 2015-10-02 18:37

@iVechan: 果然是referer问题,无意中解决的:

图2 我打开是空的,然后我用火狐浏览器再GET了一次数据,发现竟然得到我想要的源代码了(直接打开得不到我要的源代码)

查看头文件发现referer变成了图2的地址,然后我用python GET了一次,然后就成功了

在下良辰是也 | 园豆:74 (初学一级) | 2015-10-03 13:18
其他回答(1)
0

在火狐上面,按F12,会弹出一个窗口,窗口左上角有一个箭头,点击一下,然后把鼠标移到你想查看的页面内容上面去点一下就是了,你可以看到弹出的窗口内容有所改变,鼠标移动到改变了的源码,鼠标右键点击,你可以选择复制内部html和复制外部html

如此低调的男人 | 园豆:842 (小虾三级) | 2015-10-01 09:17

我想要的是让python来抓取,可能我没有说明白。

另外谢谢你的回答

支持(0) 反对(0) 在下良辰是也 | 园豆:74 (初学一级) | 2015-10-01 11:44

@在下良辰是也: 好吧  我错了

不过你看看这个:http://www.iplaypython.com/code/c152.html

不知道是不是你要的那种

支持(0) 反对(0) 如此低调的男人 | 园豆:842 (小虾三级) | 2015-10-01 12:41

@夕边日落: 看过了,不行 

谢谢

支持(0) 反对(0) 在下良辰是也 | 园豆:74 (初学一级) | 2015-10-01 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册