python补充urllib教程,Python爬虫之urllib基础用法教程
综述
本系列文档用于对Python爬虫技术进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了。
Python 版本是3.7.4
urllib库介绍
它是 Python 内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习):
request : 它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一请求,就像在浏览器里输入网址然后敲击回车一样,只需要给库方法传入 URL 还有额外的参数,就可以模拟实现这个过程了。
error : 异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作保证程序不会意外终止。
parse : 用于解析URL,提供了许多URL处理方法,比如拆分、解析、合并等等的方法,以及对参数的拼接等待。
robotparser : 主要是用来识别网站的robots.txt协议文件,然后判断网站的那些数据可以爬,哪些数据不可以爬的,其实用的比较少。
urllib.request 介绍
urlopen()
1.参数说明(仅写了四个最常用的参数)
url : 爬取目标的URL;
data : 请求参数,如果设置该参数,则请求默认为post请求;没有默认为get请求;
timeout : 用于设置超时时间,单位为秒;
context : 必须是一个ssl.SSLContext类型,用来指定SSL设置,忽略未认证的CA证书;
2.具体用法
GET 请求方式
# 导入urllib库
import urllib.request
# 向指定的url发送请求,并返回服务器响应的类文件对象
url = "http://www.baidu.com"
response = urllib.request.urlopen(url=url)
print(type(response))
# 类文件对象支持文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()
# html = response.readline() # 读取一行
# html = response.readlines() # 读取多行,返回列表
# 打印响应结果(byte类型)
print(html)
# 打印响应结果(utf-8类型)
# 二进制和字符串之间的相互转码使用 encode() 和 decode() 函数
# encode() 和 decode() 可带参数,不写默认utf-8,其他不再特别说明
print(html.decode())
# 打印状态码
# print(response.get_code())
print(response.status)
# 获取响应头
print(response.getheaders())
# 获取响应头Server信息
print(response.getheader('Server'))
# 获取响应结果原因
print(response.reason)
POST 请求方式
# 导入urllib库
import urllib.parse
import urllib.request
# 向指定的url发送请求,并返回
post_url = 'https://fanyi.baidu.com/sug'
# 传入参数
form_data = {
'kw': 'honey'
}
# 格式化参数
form_data = urllib.parse.urlencode(form_data).encode()
response = urllib.request.urlopen(url=post_url, data=form_data)
# 打印服务器响应的类文件对象
print(type(response))
# 类文件对象支持文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()
# 打印响应结果(byte类型)
print(html)
# 打印响应结果(utf-8类型)
print(html.decode())
# 打印状态码
print(response.status)
# print(response.getcode())
# 获取响应头
print(response.getheaders())
# 获取响应头Server信息
print(response.getheader('Server'))
# 获取响应结果原因
print(response.reason)
urlretrleve()
1.参数说明
url : 下载链接地址;
filename : 指定保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据);
python补充urllib教程,Python爬虫之urllib基础用法教程相关推荐
- 大学计算机基础实验教程实验2-7,大学计算机基础实验教程(Windows 7+Office 2010)(第2版)...
大学计算机基础实验教程(Windows 7+Office 2010)(第2版) 语音 编辑 锁定 讨论 上传视频 <大学计算机基础实验教程(Windows 7+Office 2010)(第2版) ...
- 大学计算机基础教程实验答案,大学计算机基础试验教程习题参考答案
<大学计算机基础试验教程习题参考答案>由会员分享,可在线阅读,更多相关<大学计算机基础试验教程习题参考答案(4页珍藏版)>请在人人文库网上搜索. 1.大学计算机基础实验教程习题 ...
- 计算机应用基础教程ppt 洪歧,计算机应用基础案例教程(清华)
计算机应用基础案例教程(清华) (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 蕴棉渐擅渐蔽蝎薯腻艰卷诞母危阜腮筷禁防距胜荔梦惋谅倪 ...
- 大学计算机基础实用教程重点知识,大学计算机基础实用教程
摘要: <大学计算机基础实用教程>认真总结多年的教学经验,广泛吸取兄弟院校同类教材的优点,本着"精讲多练,突出技能训练,基础理论以够用为度"的原则,采用"任务 ...
- 大一计算机基础实用教程答案第二章,计算机基础实用教程(课件)第2章.ppt
<计算机基础实用教程(课件)第2章.ppt>由会员分享,可在线阅读,更多相关<计算机基础实用教程(课件)第2章.ppt(23页珍藏版)>请在人人文库网上搜索. 1.计算机基础与 ...
- 计算机应用基础案例教程习题答案,新编计算机应用基础案例教程上机指导与习题集(朱尽蓉)-习题答案...
新编计算机应用基础案例教程上机指导与习题集( 习题参考答案 第一部分 上机指导与习题集 第1章 计算机基础知识与系统组成 一. 选择题 (一)单选题 1.A 2.B 11.B 12.C 3.C 13. ...
- 计算机应用基础案例教程习题答案,新编计算机应用基础案例教程上机指导与习题集(朱尽蓉)-习题答案.doc...
新编计算机应用基础案例教程上机指导与习题集(朱尽蓉)-习题答案 习题参考答案 第一部分 上机指导与习题集 第1章 计算机基础知识与系统组成 一. 选择题 (一)单选题 1.A2.B3.C4.D5.B6 ...
- ECMAScript 6.0基础入门教程(一)-ES6基础入门教程
ECMAScript 6.0基础入门教程(一) 1.ES6简介 1.1 ES6的历史 ECMAScript简称ECMA或ES ECMAScript与JavaScript的关系 ECMA是Europea ...
- python爬虫用urllib还是reques_Python爬虫之urllib.request库
爬虫--urllib.request库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地.在Python中有很多库可以用来抓取网页,我们先学习urllib.req ...
最新文章
- Java多线程分析案例
- 【LeetCode从零单排】No.9 Palindrome Number
- 基于opencv实现图像差异检测
- Missing the OpenSSL lib
- .net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...
- C++Primer学习笔记:第5章 语句
- 详解--单调队列 经典滑动窗口问题
- 从完整的新手到通过TensorFlow开发人员证书考试
- html加载状态,js等待页面加载完成
- python面向对象(特征,原则)01
- RedHat 救援模式下排错
- java游戏2333整合包,3dm游戏运行库合集离线安装包
- 数据包络分析--Malmquist指数
- 大学用什么python教材_Python开发基础 大学教材
- 惠普HP CQ40 519TX XP系统安装以及XP驱动
- 计算机竞赛制作机器人,电脑制作活动机器人项目详细说明
- java音乐播放器代码_java 音乐播放器 示例源码(亲测可用)
- 一文搞定JVM常见工具和优化策略
- ANTHILL 自动化构建
- seaborn 频数统计直方图
热门文章
- Centos7制作局域网http的yum源
- java全文检索工具_全文检索工具elasticsearch:第三章: Java程序中的应用
- -9 逆序输出一个整数的各位数字_逆序对个数(归并排序)
- 配置frp报错start error: type [http] not support when vhost_http_port is not set
- hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition
- linux脚本vrrp_script,keepalived 的 vrrp_script
- python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...
- 项目管理知识体系指南_MP考前冲刺丨项目管理知识体系指南(PMBOK)串讲(11)...
- linux perl的while循环中ctrl+c失效,perl循环控制
- oracle 31693,ORACLE expdp备份与ORA-31693、ORA-02354、ORA-01555