吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1162|回复: 1
收起左侧

[Python 转载] 爬虫urllib模块

[复制链接]
wcq15759797758 发表于 2021-6-26 22:36
本帖最后由 wcq15759797758 于 2021-6-27 01:23 编辑

一. urllib的使用
[Python] 纯文本查看 复制代码
import urllib.request    # 导入request子模块
url = 'https://www.cnblogs.com/'
response = urllib.request.urlopen(url=url)  # 发送网络请求
print('响应状态码为:',response.status)
print('响应头所有信息为:',response.getheaders())
print('响应头指定信息为:',response.getheader('Accept-Ranges'))
# 读取HTML代码并进行utf-8解码
print('博客园代码如下:\n',response.read().decode('utf-8'))



二. urllib的使用发送POST请求并带UA浏览器
[Python] 纯文本查看 复制代码
import urllib.request  # 导入urllib.request模块
import urllib.parse    # 导入urllib.parse模块
url = 'https://www.httpbin.org/post'  # 请求地址
# 定义请求头信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
# 将表单数据转换为bytes类型,并设置编码方式为utf-8
data = bytes(urllib.parse.urlencode({'hello':'python'}),encoding='utf-8')
# 创建Request对象
r = urllib.request.Request(url=url,data=data,headers=headers,method='POST')
response = urllib.request.urlopen(r)  # 发送网络请求
print(response.read().decode('utf-8'))  # 读取HTML代码并进行utf-8解码



三. urllib的异常处理
[Python] 纯文本查看 复制代码
[size=2]import urllib.request  # 导入urllib.request模块[/size]
[size=2]import urllib.error  # 导入urllib.error模块[/size]
[size=2]import socket  # 导入socket模块[/size]
[size=2]url = 'https://www.python.org/'  # 请求地址[/size]
[size=2]try:[/size]
[size=2]    # 发送网络请求,设置超时时间为0.1秒[/size]
[size=2]    response = urllib.request.urlopen(url=url, timeout=0.1)[/size]
[size=2]    print(response.read().decode('utf-8'))  # 读取HTML代码并进行utf-8解码[/size]
[size=2]except urllib.error.URLError as error:  # 处理异常[/size]
[size=2]    if isinstance(error.reason, socket.timeout):  # 判断异常是否为超时异常[/size]
[size=2]        print('当前任务已超时,即将执行下一任务!')[/size]



四. urllib的url拼接
[Python] 纯文本查看 复制代码
import urllib.parse    #导入urllib.parse模块
base_url = 'https://docs.python.org'   # 定义基础链接
# 第二参数不完整时
print(urllib.parse.urljoin(base_url,'3/library/urllib.parse.html'))
# 第二参数完成时,直接返回第二参数的链接
print(urllib.parse.urljoin(base_url,'https://docs.python.org/3/library/urllib.parse.html#url-parsing'))



可能补充的不够完整 谅解 谢谢


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

QingYi. 发表于 2021-6-27 11:57
urllib.request.urlretrieve
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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