找回密码
 中文实名注册
查看: 188|回复: 0

【爬虫】第一课

[复制链接]

697

主题

1085

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22883
发表于 2022-4-24 15:11:53 | 显示全部楼层 |阅读模式
下面使用 Python 内置的 urllib 库获取网页的 html 信息。注意,urllib 库属于 Python 的标准库模块,无须单独安装,它是 Python 爬虫的常用模块。
获取网页html信息1) 获取响应对象向百度(http://www.baidu.com/)发起请求,获取百度首页的 HTML 信息,代码如下:
[Python] 纯文本查看 复制代码
#导包,发起请求使用urllib库的request请求模块
import urllib.request
# urlopen()向URL发请求,返回响应对象,注意url必须完整
response=urllib.request.urlopen('http://www.baidu.com/')
print(response)


[Python] 纯文本查看 复制代码
#发起请求使用urllib库的request请求模块
from urllib import request
response=request.urlopen('http://www.baidu.com/')
print(response)

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

输出结果,如下所示:
<http.client.HTTPResponse object at 0x032F0F90>

2) 输出HTML信息在上述代码的基础上继续编写如下代码:
[Python] 纯文本查看 复制代码
import urllib.request
# urlopen()向URL发请求,返回响应对象
response=urllib.request.urlopen('http://www.baidu.com/')
# 提取响应内容
html = response.read().decode('utf-8')
# 打印响应内容
print(html)


常用方法在本节您认识了第一个爬虫库 urllib,下面关于 urllib 做简单总结。
1) urlopen()表示向网站发起请求并获取响应对象,如下所示:
[Python] 纯文本查看 复制代码
urllib.request.urlopen(url,timeout)

urlopen() 有两个参数,说明如下:
  • url:表示要爬取数据的 url 地址。
  • timeout:设置等待超时时间,指定时间内未得到响应则抛出超时异常。

2) Request()该方法用于创建请求对象、包装请求头,比如重构 User-Agent(即用户代理,指用户使用的浏览器)使程序更像人类的请求,而非机器。重构 User-Agent 是爬虫和反爬虫斗争的第一步。在下一节会做详细介绍。
[Python] 纯文本查看 复制代码
urllib.request.Request(url,headers)

参数说明如下:
  • url:请求的URL地址。
  • headers:重构请求头。

3) html响应对象方法
[Python] 纯文本查看 复制代码
bytes = response.read() # read()返回结果为 bytes 数据类型
string = response.read().decode() # decode()将字节串转换为 string 类型
url = response.geturl() # 返回响应对象的URL地址
code = response.getcode() # 返回请求时的HTTP响应码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-5-19 23:57 , Processed in 0.040552 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表