python网页数据抓取( python脚本:python版本:python3.4与此类似类似的语言)
优采云 发布时间: 2021-09-28 11:24python网页数据抓取(
python脚本:python版本:python3.4与此类似类似的语言)
<p>使用python获取网页需要使用到urllib模块,我们先导入:
from urllib.request import Request,urlopen</p>
接下来,使用request生成一个请求头。这是百度的主页:
req = Request('https://www.baidu.com/')
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
也可以这样写:
req = Request('https://www.baidu.com/', headers={'User-Agent':'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25'})
哪一个更好取决于你的个人喜好
请求头的信息可以通过浏览器的开发者工具获得:
添加请求头的意义在于防止服务器过滤。有些服务器会屏蔽没有请求头的请求
现在我们可以使用urlopen打开网页,但是urlopen的返回值是一个类:我们需要read函数来获取网页的源代码
file = urlopen(req).read()
网页的HTML代码存储在文件中。我们可以打印网页或将其保存在文件中
with open('out.html', 'wb') as f:
f.write(file)
打开我们的网页文件,这是百度的主页:
值得一提的是,我们抓取的网页实际上只是百度主页上的HTML文件。但是,当它在浏览器中打开时,浏览器将自动从网络下载相关图片、JS、CSS文件等,以完成我们的网页
通常,使用Python捕获网页是非常简单、复杂和重复的工作。Python是通过模块完成的。Python本身是一种基于介绍的语言
以下是我的Python脚本:
from urllib.request import Request, urlopen
req = Request('https://www.baidu.com/')
req.add_header('User-Agent',
'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
file = urlopen(req).read()
with open('out.html', 'wb') as f:
f.write(file)
Python版本:Python3.4
2.7与此类似