php抓取网页程序(Python内置的urllib库获取网页的html信息常用方法总结 )

优采云 发布时间: 2021-10-27 22:18

  php抓取网页程序(Python内置的urllib库获取网页的html信息常用方法总结

)

  本节写一个最简单的爬虫程序作为学习Python爬虫之前的开胃菜。

  接下来使用Python内置的urllib库来获取网页的html信息。注意urllib库属于Python的标准库模块,不需要单独安装。它是 Python 爬虫的常用模块。

  获取网页的HTML信息1) 获取响应对象,向百度()发起请求,获取百度主页的HTML信息。代码如下:

  

#导包,发起请求使用urllib库的request请求模块

import urllib.request

# urlopen()向URL发请求,返回响应对象,注意url必须完整

response=urllib.request.urlopen('http://www.baidu.com/')

print(response)

  上面的代码会返回百度主页的响应对象,其中urlopen()表示打开一个网页地址。注意:请求的 url 必须有 http 或 https 传输协议。

  输出结果如下:

  上面的代码还有另外一种引导包的方式,就是使用from,代码如下:

  

#发起请求使用urllib库的request请求模块

from urllib import request

response=request.urlopen('http://www.baidu.com/')

print(response)

  2) 输出 HTML 信息。在上述代码的基础上,继续编写如下代码:

  

#提取响应内容

html = response.read().decode('utf-8')

#打印响应内容

print(html)

  输出结果如下。由于篇幅较长,这里只展示一个简单的展示:

  

...

  通过调用响应对象的 read() 方法提取 HTML 信息。该方法返回的结果是字节串类型(bytes),因此需要使用decode()转换为字符串。完整的代码程序如下:

  

import urllib.request

# urlopen()向URL发请求,返回响应对象

response=urllib.request.urlopen('http://www.baidu.com/')

# 提取响应内容

html = response.read().decode('utf-8')

# 打印响应内容

print(html)

  百度主页的html信息就是通过上面的代码得到的。这是最简单也是最基本的爬虫程序。稍后我们将学习如何分析网页结构、解析网页数据和存储数据。常用方法 在本节中,您遇到了第一个爬虫库 urllib。这里是关于 urllib 的简要总结。1) urlopen() 表示向网站发起请求,获取响应对象,如下图:

  

urllib.request.urlopen(url,timeout)

  urlopen() 有两个参数,解释如下: 2) Request() 该方法用于创建请求对象并包装请求头,比如重构User-Agent(即用户代理,指的是用户使用的浏览器)。该程序更像是人类的请求而不是机器。重构 User-Agent 是爬虫与反爬虫斗争的第一步。下一节会详细介绍。

  

urllib.request.Request(url,headers)

  参数说明如下: 3) html响应对象方法

  

bytes = response.read() # read()返回结果为 bytes 数据类型

string = response.read().decode() # decode()将字节串转换为 string 类型

url = response.geturl() # 返回响应对象的URL地址

code = response.getcode() # 返回请求时的HTTP响应码

  4) 编解码操作

  

#字符串转换为字节码

string.encode("utf-8")

#字节码转换为字符串

bytes.decode("utf-8")

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线