python爬虫系列(三):第三方库requests 的使用

(一)requests的安装

1 如果你的机器上安装了anaconda了的话,可以选择conda install requests 安装。假如你对anaconda 不熟悉的话可以前往 http://blog.csdn.net/little_monkey1223/article/details/77170727
了解,这篇文章关于如何使用第三方库管理工具anaconda描述的很详细。
2 利用pip 安装。命令:pip install requests或者easy_install requests

(二)基本的用法

(1)基本的get请求和params 参数

import requests

kw = {“kw”:“科比”}

headers = {‘User-Agent’:”Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) “}

发送请求并带上get请求的内容。
response = requests.get(“你想访问的网址”,params=kw,headers = headers)

查看响应的内容的时候需要添加text或者是content
print(response.text)

返回的是字节流数据
print(response.content)

查看响应头部的字符编码
print(response.encoding)

(2)基本的post请求(data参数)

import requests

formdata = {
“doctype”:”json”,
“xmlVersion”:”1.8”,
“keyfrom”:”fanyi.web”,
“ue”:”UTF-8”,
“action”:”FY_BY_ENTER”,
“typoResult”:”true”,
}
response = requests.post(“你想访问的网址”,data = formdata)

print(response.text)

如果是文件可以直接显示
print(response.json())

代理参数(proxies)

爬虫难免会用到代理。requests请求方法提供了proxies参数来配置
import requests

要写成字典的类型
proxies = {
“http”:”http://12.23.4.5:80“,
“https”:”http://12.24.45.3.80”
}
response = requests.get(“你想访问的网址”,proxies=proxies)

**如果你不想让人轻易的看到你的代理IP,可以把ip设置成本地环境变量
export HTTP_PROXY = “http://12.23.4.5:80“,
export HTTPS_PROXY = “http://12.24.45.3.80“.
然后通过os.getenv(HTTP_PROXY)可以获得

私密代理的设置(格式是固定的)

如果代理需要密码的IP可以固定写成这个格式
proxy = {
“http”:”用户名”:”密码”@IP:PORT
}

response = requests.get(“想访问的网站”,proxies = proxy)

客户端的验证

auth = (“账号”,“密码”)

response = requests.get(“想访问的网站”,auth = auth)

Cookies

如果响应中包含了cookie ,requests自身有cookies参数

response = requests.get(“网址”)
返回cookeiJar对象,注意,并没有()
cookiejar = response.cookies

将cookiejar转为字典类型
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)

session

在requests中,session对象中非常常用的对象,非常的简单方便。这个会话能保持某些参数,比如在同一个实例发出的所有的请求之间保持的cookie

处理ssl证书的验证

只需要在请求的时候添加参数verify = Flase.默认的为True。这样就可以轻松地跳过ssl证书的验证。是不是非常的简单呢?

(三)代码体现

import requests

  1. 创建session对象,可以保存Cookie值
    ssion = requests.session()

  2. 处理 headers
    headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36”}

  3. 需要登录的用户名和密码
    data = {“email”:”用户名”, “password”:”密码”}

    1. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里
      ssion.post(“http://www.renren.com/PLogin.do“, data = data)
  4. ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面
    response = ssion.get(“http://www.renren.com/410043129/profile“)

  5. 打印响应内容
    print response.text

requests 非常的实用,简答方便。在爬虫工程师的眼中要比urllib亲的几万倍。

你可能感兴趣的:(爬虫)