javascript - 使用 python 和 urllib 从网页打印代码

标签 javascript python urllib

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

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

但它什么也没返回。我猜是因为该页面有很多 JavaScript 代码?该怎么办?

最佳答案

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

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

但是,您可以使用类似 selenium 的内容远程控制网络浏览器(Chrome 或 Firefox)。这将使您可以废弃该页面,即使该页面是使用 javascript 呈现的。

这是使用 Selenium 进行抓取的示例:Using python with selenium to scrape dynamic web pages

但这不是你的问题

然而,这个网站的问题似乎是他们不想被抓取。它们会阻止具有某些 http 用户代理 header 的客户端。

但是,如果您伪造 http header ,您无论如何都可以获得代码。使用 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()

但是,他们显然不希望您抓取他们的网站,因此您应该考虑这是否是一个好主意。

关于javascript - 使用 python 和 urllib 从网页打印代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137330/

相关文章:

python-3.x - python 3.5 urllib.request.Request POST 数据到网站。执行 GET 而不是 POST

javascript - 如何将 numeric.js 导入我的 javascript 文件

javascript - React 不会从 className 中追加类

python manage.py runserver 段错误

python - 检查字符串列表是否出现在字符串中的最短方法

urllib - 如何在Python3.2中使用urllib HTTP 'Keep-Alive'

python - 将 .split() 函数与 urllib.request 一起使用时出错

javascript - 设置请求 header jQuery Ajax

javascript - 我如何动画化转换后的 Canvas 图像返回其原始状态的过程?

python - 在 Jupyter Notebook 中使用 PyQ