python网络爬虫基础知识
【摘要】 一、urllib库urllib 是 Python 标准库中用于处理 URL 和 HTTP 请求的模块。它提供了用于打开和读取 URL、处理 HTTP 请求和响应、解析 URL、处理 cookies 等功能。本文将简要介绍 urllib 的基本使用方法。导入 urllib 模块urllib 包含几个子模块,每个子模块负责不同的功能。常用的子模块包括:urllib.request: 用于打开和读...
一、urllib库
urllib
是 Python 标准库中用于处理 URL 和 HTTP 请求的模块。它提供了用于打开和读取 URL、处理 HTTP 请求和响应、解析 URL、处理 cookies 等功能。本文将简要介绍 urllib
的基本使用方法。-
导入
urllib
模块
urllib
包含几个子模块,每个子模块负责不同的功能。常用的子模块包括:-
urllib.request
: 用于打开和读取 URL。 -
urllib.parse
: 用于解析 URL。 -
urllib.error
: 包含异常类,用于处理在请求 URL 时可能遇到的错误。 -
urllib.robotparser
: 用于解析 robots.txt 文件。
import urllib.request
import urllib.parse
import urllib.error
import urllib.robotparser
2 打开和读取 URL
使用
urllib.request
模块可以轻松地打开和读取 URLimport urllib.request
url = "http://www.baidu.com"
response = urllib.request.urlopen(url)
html = response.read()
print(html.decode('utf-8'))
3.处理 HTTP 请求
urllib.request
提供了 Request
类,可以用于创建更复杂的 HTTP 请求,例如添加头信息。import urllib.request
url = "http://www.baidu.com"
req = urllib.request.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0')
response = urllib.request.urlopen(req)
html = response.read()
print(html.decode('utf-8'))
案例:使用urllib访问豆瓣官网
import urllib.request
import urllib
import ssl
#访问豆瓣
url = "https://www.douban.com"
req = urllib.request.Request(url=url)
res = urllib.request.urlopen(req)
print(res.read().decode("utf-8"))
会报异常in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)urllib.error.HTTPError: HTTP Error 418:
在请求头中添加User-Agent参数,告诉服务器是正常访问,而非爬虫。解决方案:
import urllib.request
import urllib
import ssl
url = "https://www.douban.com"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62"
}
ssl._create_default_https_context = ssl._create_unverified_context
req = urllib.request.Request(url=url,headers=headers)
res = urllib.request.urlopen(req)
print(res.read().decode("utf-8"))
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)