爬虫requests库

response.text 返回的是一个 unicode 型的文本数据 
response.content 返回的是 bytes 型的二进制数据 

 

为什么请求需要带上header?

  模拟浏览器,欺骗服务器,获取和浏览器一致的内容

header的形式:字典

用法:requests.get(url,headers = headers)

 

什么叫做请求参数:

  https://www.baidu.com/s?wd=python&c=b

参数的形式:字典

kw = {'wd':'长城'}

用法:requests.get(url,params=kw)

 

url编码

  https://www.baidu.com/s?wd=%E8%BF%AA%E4%B8%BD%E7%83%AD%E5%B7%B4

 

发送POST请求

用法:response = requests.post('http://www.baidu.com/',data=data,headers=headers

data的形式:字典


使用代理
用法: requests.get("http://www.baidu.com",proxies=proxies)
proxies的形式:字典
proxies={
 ”http”:”http://12.34.56.79:9527”,
 "https":
”https://12.34.56.79:9527”,
}
使用代理
问题:为什么爬虫需要使用代理?
1.让服务器以为不是同一个客户端在请求
2.防止我们的真实地址被泄露,防止被追究
   

检测ip的可用性
准备一堆ip地址,组成ip池,随机选择一个ip来使用
如何随机选择代理ip,让使用次数较少的ip地址有更大的可用行被用到
  {”ip”:ip,”times”:0}
  [{},{},{},{}],对这个ip的列表进行排序,按照使用次数进行排序
  选择使用次数较少的10个ip,从中随机选择一个
检测ip的可用性
  可以使用requests添加超时参数,判断ip地址的质量
  在线代理ip质量检测的网站

携带cookie请求
携带一堆cookie进行请求,把cookie组成cookie池

使用requests提供的session类来请求登录之后的网站的思路
实例化session
先使用session发送请求,登录对网站,把cookie保存在session中
再使用session请求登录之后才能访问的网站,session能够自动的携带登录成功是保存在期中的cookie,进行请求


posted on 2019-06-03 20:41  Little_Raccoon  阅读(163)  评论(0编辑  收藏  举报