本文是我在使用网易云课堂学习日月光华老师讲的“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.parse
payload = {'q':'python','cat':'1001'}
requst_url = 'https://www.douban.com/search'
# 对要添加的URL参数进行编码
payload_encode = urllib.parse.urlencode(payload)
# 构造实际请求的URL
url = requst_url + '?' + payload_encode
# 请求直接返回的是二进制
response = urllib.request.urlopen(url)
# 解码并输出
print(response.read().decode('utf-8'))

实现效果

模拟浏览器发送GET请求
# 引入requests请求模块
import urllib.request
# 引入网址解析模块
import urllib.parse
url = '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-Agent
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request).read()
POST发送一个请求
# 可以在下面直接调用request和parse
from urllib import request, parse
post_data = parse.urlencode([('key1', 'v1'), ('k2', 'v2')])
# 构造请求url,构造一个Request对象
url = request.Request('http://httpbin.org/post')
# 添加headers
url.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拼接正确URL
from urllib.parse import urljoin
urljoin('https://accounts.douban.com','/passport/login')

爬虫:Python爬虫学习笔记之Urllib库相关推荐

  1. 数据分析与爬虫实战视频——学习笔记(一)(python基础、urllib、超时设置、自动模拟HTTP请求、异常处理、浏览器伪装、代理服务器、新闻爬虫、淘宝登陆和图片爬取)

    未经允许,请勿转载. 连载未完成状态 网址: [数据挖掘]2019年最新python3 数据分析与爬虫实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili ...

  2. Python爬虫入门(4):Urllib库的高级用法

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  3. Python爬虫入门(3):Urllib库的基本使用

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  4. Python学习笔记:requests库

    Python学习笔记:requests库 利用requests这个功能强大的网络请求库,可以像浏览器一样发送各种HTTP请求来获取网站的数据. 一.运行环境 1.系统版本:Windows 10 2.P ...

  5. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  6. Python基础学习笔记之(一)

    Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...

  7. python自动化测试学习笔记合集

    python自动化测试学习笔记-1 一.什么是自动化 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.直白的就是为了节省人力.时间或硬件资源,提高测试效率,便引入了通过软件或程序自动化执行 ...

  8. python模块学习笔记

    python模块学习笔记 1.Python自动发送邮件smtplib 2.制作二维码图片MyQR 3.绝对值模块math 4.CSV模块 5.openpyxl 模块,操作Excel文件 ExcelMa ...

  9. Python爬虫 | Python爬虫获取女友图片

    Python爬虫 | Python爬虫获取女友图片 前言 程序说明 二次元女友获取程序 观察网页结构 页面解析 创建图片保存路径 图片下载 格式转换 爬取结果展示 完整程序 前言 (又到了常见的无中生 ...

  10. python自动化测试学习笔记合集三

    上次我们学到了redis的一些操作,下面来实际运用以下. 这里我们先来学习一下什么是cookie和session. 什么是Cookie 其实简单的说就是当用户通过http协议访问一个服务器的时候,这个 ...

最新文章

  1. Linux 忘记密码如何登陆—续篇2救援模式
  2. 科学:揭示自由意志的生物学本质
  3. Scikit-learn环境的搭建
  4. intellij运行spark的maven方式运行WordCount
  5. Vue_案例_初始化显示_采用组件化编写页面_实现组件间通信---vue工作笔记0022
  6. 表格存储(TableStore)
  7. android谷歌打印插件下载地址,谷歌浏览器打印插件(Print Plus)
  8. XLINUX-FPGA开发-基础篇-数电-门电路
  9. ICIP2019论文合集
  10. 网络安全实验室—脚本关
  11. windows中truffle unbox react失败总结
  12. android studio一个好看的字体设置
  13. struts2 项目构建规划 (6)
  14. transform.position 绝对位置与相对位置
  15. 检测浏览器无痕模式下是否支持localStorage
  16. CJ Affiliate如何收款?多号操作怎么避免关联?
  17. 加入收藏 设为首页 代码
  18. RadioButton、CheckBox与checked事件
  19. 无锡计算机考试准考证打印
  20. 在LINUX下怎么播放MP3等音频文件啊?

热门文章

  1. [转]C++编译链接过程详解
  2. POJ - 3494
  3. PAT Basic 1056
  4. 【读书笔记】iOS-Web应用程序的自动化测试
  5. linux NFS 配置步骤
  6. 生成整数自增ID(集群主键生成服务)
  7. javascript基础知识-数组
  8. 关于父窗口、子窗口的操作(如关闭、打开、调用方法、刷新等等)
  9. ACM PKU 1251 Jungle Roads http://poj.org/problem?id=1251
  10. 时间操作(JavaScript版)—页面显示格式:年月日星期几