用python和urllib从网页打印代码

2024-05-14 01:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python和urllib来查看某个web页面的代码。 我已经尝试并成功地在其他网页使用代码:

from urllib import *
url = 
code = urlopen(url).read()
print code

但它什么也不返回。我猜是因为这个页面有很多javascripts?怎么办?在


Tags: 代码fromimportweburl网页readcode
1条回答
网友
1楼 · 发布于 2024-05-14 01:18:59

动态客户端生成的页面(JavaScript)

不能单独使用urllib查看动态呈现的客户端(JavaScript)代码。原因是urllib只从服务器获取响应,即头和正文(实际代码)。因此,我不会执行客户端代码。在

但是,您可以使用selenium之类的东西来远程控制web浏览器(Chrome或Firefox)。这样,即使页面是用javascript呈现的,也可以将其丢弃。在

这是一个用硒刮擦的例子:Using python with selenium to scrape dynamic web pages

但这不是你的问题

然而,这个网站的问题似乎是他们不想被刮掉。它们用特定的http用户代理头阻止客户端。在

但是,如果您伪造http报头,您仍然可以获得代码。使用urllib2而不是urllib,如下所示:

import urllib2
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox')  # Add fake client
response = urllib2.urlopen(req)
print response.read()

但是,他们显然不想让你刮他们的网站,所以你应该考虑这是否是个好主意。在

相关问题 更多 >