Python爬虫学习第一天--uillib库和request库
1、urllib python 内置的http的请求库
urllib.request #请求模块
www=urllib.request.urlopen(url,data,timeout)
www.read().decode('utf-8')
type(www)#响应类型
www.status#响应状态吗
www.getheaders()#响应头
www.getheader('Server')
代理handler
handler=urllib.request.ProxyHandler({'http':'http://207.246.77.83:2010'})
Cookie#维持网站登陆状态
urllib.error#异常处理模块
try
需要捕获异常的代码
except 异常原因 as e:
操作
#print(e.reason)
#if isinstance(e.reason,'TIMEOUT')
# print('连接超时')
异常类型
error.HTTPError
error.URLError
urllib.parse#解析模块
urllib.parse.urlpasrse(url,scheme,allow_fragmengts=True)#scheme协议类型 allow_fragmengts允许分割6个字段
urllib.parse.urlunpasrse()
urllib.parse.urljoin()#url拼接
urllib.parse.urljoin()
urllib.parse.urlencode()#将字典的键值对转化为url
urllib.robotparse#解析txt文本
Request python 内置的http库
pip3 install requests#安装requests库
url = 'http://www.365cmd.com/forum.php'
re=request.get(url)
type(re)
re.status_code
re.cookies
re.headers
re.text
arms={
'mod':'viewthread',
'tid':'14807'
}
re1=requests.get(url,params=arms)#利用字典形式传递params参数构造网址http://www.365cmd.com/forum.php?mod=viewthread&tid=14807
解析json
re1.json()
获取二进制数据
re1.content
保存二进制数据
with open('文件名','mode') as file
file.write(re1.content)
file.close()
打开windows文件C:\Users\Raytine\Desktop\111\123\1111222.txt
f=open(r'C:/Users/Raytine/Desktop/111/123/1111222.txt','r')
如果文件不在项目目录下,需写完整的路径,windows下的\代表转移字符
添加header
header={
}
re2=requests.get(url,header=header)
post方法
data={
...
}
header={
...
}
requests.post(url,data=data,header)
response状态码判断
re.status_code
200成功
404NOT FOUNLD
获取Cookie
re.cookies
for key, value, in re.cookies.items()
string = '%s%s%s' % (key, ' = ', value)#字符串格式化
print(string)
会话维持
request.Session().get(url)#模拟在同一个浏览器操作
证书验证
爬取https网站url='https://www.12306.cn'
request.get(url)
若浏览器检测证书不安全,response报错
过滤错误信息以及不检测证书
from request.packages import urllib3
urllib3.disable_warning()
requests.get(url,verify=False)
requests.get(url,cert='crt,key')
代理设置
proxies={
'http':'http://207.246.77.83:2010'
'https':'http://user:passwd@207.246.77.83:2010'}
pip3 install requests[socks]# sock5代理安装
proxies={
'https':'sock5://207.246.77.83:2010'
'https'='https:sock5//user:passwd@207.246.77.83:2010'}
requests.get(url,proxies=proxies)
超时设置
try
requests.get(url,timeout=1)
except ReadTimeOut
print('TIMEOUT')
认证设置
from requests.auth import HTTPBasicAuth
requests.get(url,auth=HTTPBasicAuth('USER':'PASSWORD'))
requests.get(url,auth=('USER':'PASSWORD'))
异常捕获处理
try
requests.get(url)
except ReadTimeOut:
操作
print('**异常')
except HTTPError:
操作
print('**异常')
except ConnectionError:
操作
print('**异常')
except RequestException:
操作#捕获父类异常
print('异常')
转载于:https://www.cnblogs.com/chenxiaoweiworkinghard/p/9281751.html
Python爬虫学习第一天--uillib库和request库相关推荐
- python爬虫学习第一章
<!DOCTYPE html> python爬虫第一章 python网络爬虫的学习 什么是网络爬虫 按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫. 网络爬虫算法 当浏览信 ...
- python爬虫学习之路(二)re库的使用方法
python基础爬虫学习之路(二) 在上一篇文章中,我们已经学习了有关爬虫对URL的访问以及利用xpath表达式对网页中的信息进行提取,这一篇文章我们将从信息提取的角度来进一步学习爬虫. 正则表达式提 ...
- python爬虫beautifulsoup实例-Python爬虫学习(二)使用Beautiful Soup库
(一)使用Beautiful Soup库(默认将HTML转换为utf-8编码) 1,安装Beautiful Soup库:pip install beautifulsoup4 2,简单使用: impor ...
- python爬虫、第一个爬虫(基本知识,requests库,BeautifulSoup库,正则表达式re库)
python爬虫学习开始 1.这是我第一次写博客,表示不太会用csdn的这个编辑器,排版神马的就别说了,有什么值得改进的或者不对的地方,欢迎留言,谢谢. 2.作为学生党,正在自学python爬虫,基于 ...
- Python爬虫学习 6 —— 使用bs4库爬取大学排名
前面学了如何使用beautifulsoup,现在来尝试简单的爬取:中国大学排名 一.准备 查看Robots协议:robots协议 功能描述 输入:大学排名的url链接 输出:大学排名信息(排名,大学名 ...
- Python爬虫学习总结
Python爬虫学习总结 一.前提 请求网站并提取数据的自动化程序, 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...
- 铁憨憨的Python 爬虫学习 Python_Learn
通过网课和万能的B站学习 Python 和爬虫(本文基本是对视频内程序和内容的笔记内容) B站 Python 爬虫学习链接 Python 学习网络爬虫主要分3个大的版块:明确目标,抓取,分析,存储 明 ...
- python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
python爬虫学习笔记 3.9 (了解参考:训练Tesseract) 参考阅读:训练Tesseract 要使用 Tesseract 的功能,比如后面的示例中训练程序识别字母,要先在系统中设置一 个新 ...
- Python爬虫学习之数据提取(Beautiful Soup)
Python爬虫学习之数据提取Beautiful Soup 前期回顾 概述 解析器 准备工作 实例 节点选择器 方法选择器 find_all find 总结 前期回顾 Python爬虫学习之reque ...
最新文章
- 动态规划——最长上升子序列问题 两种角度及优化算法
- 计算机应届生必读的 AI 入门经典书单
- 通过css类/选择器选取元素 文档结构和遍历 元素树的文档
- ExoPlayer 开发者指导
- android -------- java虚拟机和Dalvik虚拟机
- antlr idea 入门_ANTLR入门:构建简单的表达语言
- 【Java】Socket实现的C/S模式半UI多人聊天程序
- Android笔记 fragment通信
- Python基础学习笔记(十三)异常
- 【ACL2020论文尝鲜】何时采用BERT更加有效?
- Layer单选框非空校验注意
- 万能视频格式转换器 v 2018 全能版
- 整个AppData目录挪到D盘方法
- 黑苹果音频卡顿_DXOMARK公布无线音箱音质基准:苹果华为Sonos上榜
- 关于win8的各种版本的区别
- Unity 2D人物移动实现
- 一种使用随机抽样梯度下降算法来预估词汇量的方法
- SQL 修改表的常用命令
- 网赚项目分享:八条可以在线上做的副业兼职
- 【马司机带带我】君子日三省吾身
热门文章
- 「干货」不逼自己一下不知道自己多牛逼[python篇]
- php特殊符号写入excel_PHP:使用PEAR写入excel文件
- 收藏 | 万字长文带你理解Pytorch官方Faster RCNN代码
- 一文带你读懂单目视觉SLAM数据关联优化
- 深度学习(三十三)CRF as RNN语义分割-未完待续
- OpenCV属性页配置问题~
- python合并表格矩阵并排序_在Python中,将多个列的列表排列成一个矩阵
- python做视频抽帧图_python-opencv-视频截取帧图片
- ajax-loader.gif不存在怎么解决_高温下水泥路面材料膨胀路面上出现裂缝怎么处理?...
- Wireshark使用入门