一、Requests库简介
Requests模块是发起http请求最常见的模块。Requests自称“http for Humans”,说明使用更简洁方便。
Requests继承了urllib的所有特性,Requests支持http链接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的url和post数据自动编码。
Requests的底层实现其实就是urllib3.
开源地址:http://github.com/kennethreitz/requests
中文文档API:http://2.python-requests.org/zh_CN/latest/
安装方式:
pip install requests
二、Requests模块get请求
(一)、网络请求
当客户端发送一个请求,服务器收到这个请求后就会将请求所对应的响应返回给客户端,客户端收到这个响应将其显示出来,我们使用requests模块其实就是在模仿哭护短和服务器的这个过程。
客户端在发送请求时主要有两种请求的方法:get请求和post请求。
1、get请求:
get请求主要是从服务器去获取内容,大多输的请求都是get请求。
2、post请求:
post请求是向服务器提交一些内容,比如表单等。
(二)、使用requests发送get请求
1、导入requests模块
import requests
2、发送请求,获取响应
response=requests.get(
url=请求的url
headers=请求头字典
params=请求参数字典
)
(三)、response对象的属性
1、字符串响应的内容
response.text
2、二进制响应的内容
response.content
3、json响应的内容
response.json()
4、响应状态码
response.status_code
5、响应头
response.headers
6、页面内容乱码问题
1)、设置正确的编码方式
给response.encoding设置一个正确的编码,requests模块会自动根据设置的编码来将服务器响应的内容按照这个编码成字符串,这时我们通过response.text字段就可以获取正确的页面内容了
2)、通过response.content.decode(“正确的编码”)方法来将而简直内容按照提供的编码方式编码成unicode字符串,进而正确的显示。
三、requests模块post请求
(一)、post请求的使用方法
1、导入requests模块
import requests
2、发送请求,获取响应
response=requests.post(
url=请求的url
headers=请求头字典
data=请求数据字典
)
四、爬虫和法律
(一)、爬虫背后的法律风险
我们都知道在爬取网上数据时,爬取个人信息是不合法的。
《中华人民共和国网络安全法》 2016 年 11 月 7 日发布的《中华人民共和国网络安全法》明确“个人信息”是指以电子或 者其他方式记录的能够单独或者与其他信息结合识别自然人个人身份的各种信息,包括但不限于自然人的姓名、出生日期、身份证件号码、个人生物识别信息、住址、电话号码等,就网络服务中的个人信息保护问题作出系统规定如下:
1、保护个人信息: 网络产品、服务具有收集用户信息功能的,其提供者应当向用户明示并取得同意;涉及 用户个人信息的,还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。
2、合法收集使用个人信息: 网络运营者收集、使用个人信息,应当遵循合法、正当、必要的原则,公开收集、使用 规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。不得收集与其提供的 服务无关的个人信息,不得违反法律、行政法规的规定和双方的约定收集、使用个人信息, 并应当依照法律、行政法规的规定和与用户的约定,处理其保存的个人信息。
3、不得向他人提供个人信息: 网络运营者不得泄露、篡改、毁损其收集的个人信息,未经被收集者同意,不得向他人 提供个人信息,但经过处理无法识别特定个人且不能复原的除外。
《规范互联网信息服务市场秩序若干规定》
1、搜集须经许可:未经用户同意,不得搜集与用户相关、能够单独或者与其他信息结 合识别用户的信息(“用户个人信息”),但法律法规另有规定除外;
2、限定搜集范围和用途:经用户同意搜集用户个人信息的,应当明确告知搜集和处理 用户个人信息的方式、内容和用途,不得收集其提供服务所必需以外的信息,不得将用户个 人信息用于其提供服务之外的目的;
3、用户个人信息保障:互联网信息服务提供者应当加强系统安全防护,妥善保管用户 个人信息,未经用户同意,不得向他人提供用户上载信息,但是法律法规另有规定的除外。
(二)、爬虫怎么做比较好
1、如果爬虫获取信息,是为了证明被爬公司的数据造假,其获取的数据也都是通过公开渠道可以查询的,那么,在获取信息后公布于众的行为并不违法,也不侵犯被爬公司的民事权益。但是,如果你爬取公开免费的信息,是用来进行违法操作,比如造假、诽谤等,就有隐患了。
2、如果你利用爬虫获取其他公司的公开信息数据,用于自身公司的经营。而被爬公司 的信息是投入了大量人力、财力,经过常年积累获得的,并且被爬公司本身也采取了反爬措 施。这种情况下,虽然信息是公开的,但信息本身具有较高的商业价值,能够给使用者带来 商业利益,此时的爬虫也是违法的。
3、如果你未经平台授权,强行突破反爬措施,导致被爬网站的运行受到严重影响,这 种行为明显是违法的。
4、如果你是第三方应用,想要通过开放平台获取用户信息时,更要注意授权问题。从 用户对平台的授权、平台对第三方的授权、再到用户对第三方的授权,三重关卡都要通过才合法