python下载requests库教程_Python爬⾍之requests库⼊门⽹络爬⾍就是提取⽹页的信息。
⽹络爬⾍的原则就是谨记“the website is API”,就是我们所⾯对的对象和信息来源都是各个website。现在python由于其特性已经越来越被⼴泛的⽤于⽹络爬⾍领域。
我们先从最简单的python爬⾍库requests库开始讲起。
⾸先我们从官⽹下载并安装好requests库。
Paste_Image.png
requests库的get⽅法
Paste_Image.png
我们调⽤requests的get⽅法就是构造⼀个向服务器请求资源的requests对象,这个对象会返回⼀个包含服务器资源的response对象,随后我们就可以从response对象中获取我们需要的信息。
Paste_Image.png
Paste_Image.png
>>> import requests
>>> res = ("www.baidu")linux命令创建目录
>>> res.status_code
200
>>> type(res)
>>> res.headers
买ps4还是任天堂switch{'Server': 'bfe/1.0.8.18', 'Date': 'Sat, 15 Apr 2017 03:20:29 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 23 Jan 2017 13:28:16 GMT', 'Transfer-Encoding': 'chunked', 'Connection': 'Keep-Alive', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Pragma': 'no-cache', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu; path=/', 'Content-Encoding': 'gzip'}
我们可以看到response对象包含返回的信息,同时也包括请求时的头部信息
我们接下来了解⼀下response对象的属性
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
r.apparent_encoding:是根据⽹页分析出的实际编码⽅式
理解requests库的异常
⽹页爬⾍的时候,⼀个很重要的问题就是异常处理,因为⽹络连接有时候是不稳定的,所以我们需要处理这些情况。⾸先了解requests库的异常
Paste_Image.png
Paste_Image.png
所以这个⽅法很适合我们⽤于异常处理,他会在内部帮我们判断,状态码是否等于200,如果不等于就抛出httperror 爬去⽹页通⽤的代码框架
# -*- coding:utf-8 -*-
import requests
def getHTMLText(url):
try:
r = (url,timeout = 30)
r.raise_for_status()
except:
return "产⽣异常"
if __name__ == "__main__":
url = "www.baidu"
字节换算tbprint(getHTMLText(url))
resquests库主要⽅法的解析
Paste_Image.png
从这个表中我们可以看出实际上只有⼀个request⽅法,其他六个⽅法都是以传参数的⽅式在调⽤request⽅法
Paste_Image.png
下⾯我们来分析了解⼀下request⽅法的可选参数:
params: 字典或字节序列,作为参数增加到url中
>>> kv = {'ie':'UTF-8','wd':'刘德华'}
>>> r = ("www.baidu/s",params = kv)
Traceback (most recent call last):
File "", line 1, in
r = ("www.baidu/s",params = kv)
NameError: name 'requests' is not defined
>>> import requests
>>> r = ("www.baidu/s",params = kv)
>>> r.url
'www.baidu/s?ie=UTF-8&wd=%E5%88%98%E5%BE%B7%E5%8D%8E' >>> [:200])
data : 字典、字节序列或⽂件对象,作为Request的内容
>>> kv = {'key1': 'value1', 'key2': 'value2'}
>>> r = quest('POST', 'python123.io/ws', data=kv)制作过程英文
>>> body = '主体内容'
>>> r = quest('POST', 'python123.io/ws', data=body)
json : JSON格式的数据,作为Request的内容
>>> kv = {'key1': 'value1'}
>>> r = quest('POST', 'python123.io/ws', json=kv)
headers : 字典,HTTP定制头
可以⽤来模拟浏览器登录
>>> hd = {'user‐agent': 'Chrome/10'}
>>> r = quest('POST', 'python123.io/ws', headers=hd)
python入门教程 下载files : 字典类型,传输⽂件
>>> fs = {'file': open('data.xls', 'rb')}
>>> r = quest('POST', 'python123.io/ws', files=fs)c语言数据类型大小
timeout : 设定超时时间,秒为单位
>>> r = quest('GET', 'www.baidu', timeout=10)
proxies : 字典类型,设定访问代理服务器,可以增加登录认证
>>> pxs = { 'http': 'user:pass@10.10.10.1:1234'
'https': '10.10.10.1:4321' }
>>> r = quest('GET', 'www.baidu', proxies=pxs)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论