python爬虫
此文章大致需要观看十分钟
Python作为现阶段最流行的语言,对于网络的爬取和海量数据的分析,python更胜一筹。
- 今天介绍一下requests库,使用requests------Python第三方库,处理URL资源会变得特别方便。
安装requests第三方库
- 若您已经安装anaconda,则requests库已经可以直接使用了,否则,则需要使用命令行安装requests库。
pip install requests
此方法可直接在site-package中安装requests库,如果遇到Permission问题出现,则需要使用管理员运行命令行。
- 使用python3对已下载的第三方包requests调试。
import requests
若没出现报错现象,则说明安装成功。
requests的用法。
- 1.要通过GET访问一个页面,只需要几行代码:
import requests
html = requests.get("http://www.baidu.com/")
if html.status == 200:
text = html.text
print(text)
else:
print("Error")
第一行表示引用第三方包requests。
第二行表示通过get访问百度页面。
第三行表示判断get方法访问返回值是否为200(正常返回值)
第四行表示若返回值正常,则将源代码赋值给text变量
第六七行表示若返回值异常,则打印错误信息并结束程序
requests同样也支持post请求,类似于get
- 2.对于一个带参数的url请求方式则需要传入一个dict作为params参数。
# 第一种方法
html = requests.get('https://www.baidu.com/s?wd=python')
# 第二种方法
url = 'https://www.baidu.com/s'
params = {'wd': 'python'}
html = requests.get(url, params=params)
params参数则将url携带该参数进行访问页面。
对网页登录以及资源查询起到了直接访问的效果。
- 3.requests可以检测网页编码格式,可使用encoding属性查看编码格式。
print(html.encoding)
# 'utf-8'
网页编码格式尤为重要,解析url时若编码不对应则会导致返回网页源码格式错乱,养成一个每次访问页面时均对网页编码进行调整的习惯。
- 4.requests对其他类型的传递或获取均较为便捷。
import requests
# Json
import json
data = {'key1': 'value1', 'key2': 'value2'}
# 将字典转换Json
data=json.dumps(data)
# 发送POST请求
r = requests.post("https://www.baidu.com/", data=data)
print(r.text)
- 5.requests防止反爬可直接添加请求头信息
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0'}
requests.get("https://www.baidu.com/", headers=headers)
请求头信息则告知浏览器此次访问的来源。
- 6.同样的,requests防止反爬也可直接传递proxy信息
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("https://www.baidu.com/", proxies=proxies)
proxy信息则更好的匿名了自己的真实ip地址。
- 7.对于访问时间的控制,requests也可以指定超时时间。
html = requests.get(url, timeout=2.5)
若访问网页时间超过2.5秒,则此次访问失败,多次失败后可处理proxy。
- 8.requests中包含证书验证的参数选择。
html = requests.get(url, verify=False) # 关闭证书验证
html = requests.get(url, verify=True) # 开启证书验证
html = requests.get(url, verify= '/path/to/certfile') # 设置证书所在路径
- 9.requests中content可返回响应内容(字节流)
import requests
url = 'http://cc.stream.qqmusic.qq.com/C100001Yyla31Dr60y.m4a?fromtag=52'
r = requests.get(url)
f = open('mymusic.m4a', 'wb')
f.write(r.content)
f.close()
以上为requests的常用用法,希望各位喜欢,感谢观看。
课间休息几分钟,下课!
下节课:你不可或缺的爬虫课程哦~