爬虫:Python爬虫学习笔记之Urllib库
发布日期:2021-06-30 15:42:06
浏览次数:3
分类:技术文章
本文共 1772 字,大约阅读时间需要 5 分钟。
本文是我在使用网易云课堂学习日月光华老师讲的“Python爬虫零基础入门到进阶实战”课程所做的笔记,如果大家觉得不错,可以去看一下老师的视频课,讲的还是很棒的。
Urllib库的四个模块
1.urllib.request打开和读取URL
2.urllib.error包含Urllib.request各种错误的模块 3.urllib.parse解析URL 4.urllib.robotparse解析网站robots.txt文件Urllib库的使用
发送GET请求
# 引入urlopen库 用于打开网页from urllib.request import urlopen# 获取内容html = urlopen('https://www.douban.com')# 读取返回的内容response = html.read()# 输出(豆瓣首页二进制源代码)print(response)# 对二进制内容进行解码# 输出(豆瓣首页文本代码)print(response.decode('utf-8'))
实现效果
传递URL参数
# 引入requests请求模块import urllib.request# 引入网址解析模块import urllib.parsepayload = { 'q':'python','cat':'1001'}requst_url = 'https://www.douban.com/search'# 对要添加的URL参数进行编码payload_encode = urllib.parse.urlencode(payload)# 构造实际请求的URLurl = requst_url + '?' + payload_encode# 请求直接返回的是二进制response = urllib.request.urlopen(url)# 解码并输出print(response.read().decode('utf-8'))
实现效果
模拟浏览器发送GET请求
# 引入requests请求模块import urllib.request# 引入网址解析模块import urllib.parseurl = 'https://www.douban.com'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}# 构造请求 在url中添加User-Agentrequest = urllib.request.Request(url, headers=headers)response = urllib.request.urlopen(request).read()
POST发送一个请求
# 可以在下面直接调用request和parsefrom urllib import request, parsepost_data = parse.urlencode([('key1', 'v1'), ('k2', 'v2')])# 构造请求url,构造一个Request对象url = request.Request('http://httpbin.org/post')# 添加headersurl.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36')response = request.urlopen(url, data=post_data.encode('utf-8')).read()print(response)
urljoin函数
# 使用urljoin拼接正确URLfrom urllib.parse import urljoinurljoin('https://accounts.douban.com','/passport/login')
转载地址:https://kaisarh.blog.csdn.net/article/details/102925191 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年05月02日 01时21分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python安装mysqlclient[MySQLdb]
2019-05-01
性能测试的必要性评估以及评估方法
2021-07-04
性能测试需求分析
2021-07-04
性能测试需求评审
2021-07-04
性能测试实施流程
2021-07-04
Jmeter在多线程当中对某个http请求进行循环读取配置文件
2021-07-04
Python读取配置文件中文乱码问题
2021-07-04
使用Spark读写外部存储介质(Mysql、Hbase、Redis)
2021-07-04
Spark学习——利用Mleap部署spark pipeline模型
2021-07-04
手写LogisticRegression
2019-05-01
推荐系统初学
2019-05-01
约瑟夫环问题
2019-05-01
springboot+log4j2体验
2019-05-01
Oracle创建表,修改表(添加列、修改列、删除列、修改表的名称以及修改列名)
2019-05-01
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 报错
2019-05-01
最后一台,i7+6核电脑
2019-05-01
redis五种基本数据类型
2019-05-01
以不同业务,redis分库概念
2019-05-01
使用redis实现订阅功能
2019-05-01