Python爬虫之Requests库

Requests库可以获取网页源码

requests-网络爬虫-CSDNPython入门技能树

Get方法

import requests
html=requests.get("http://www.baidu.com") #获取到Response对象
html_bytes=html.content #获取到bytes型网页的源代码
html_str=html_bytes.decode()#获取到字符串型网页的源代码
print(html_str)
import requests
html_str=requests.get("http://www.baidu.com").content.decode()

print(html_str)

如果不是utf-8编码格式,就需要解码

html_str=requests.get("http://www.baidu.com").content.decode('GBK')

get方法有很多参数

  • url:请求地址;
  • params:要发送的查询字符串,可以为字典,列表,元组,字节;
  • data:body 对象中要传递的参数,可以为字段,列表,元组,字节或者文件对象
  • json:JSON 序列化对象;
  • headers:请求头,字典格式;
  • cookies:传递 cookie,字段或 CookieJar 类型;
  • files:最复杂的一个参数,一般出现在 POST 请求中,格式举例 "name":文件对象 或者 {'name':文件对象},还可以在一个请求中发送多个文件,不过一般爬虫场景不会用到;
  • auth:指定身份验证机制;
  • timeout:服务器等待响应时间,在源码中检索到可以为元组类型,这个之前没有使用过,即 (connect timeout, read timeout)
  • allow_redirects:是否允许重定向;
  • proxies:代理;
  • verify:SSL 验证;
  • stream:流式请求,主要对接流式 API;
  • cert:证书。

 

响应对象

get方法返回的是一个响应对象,它有一些属性

  • ok:只要状态码 status_code 小于 400,都会返回 True;
  • is_redirect:重定向属性;
  • content:响应内容,字节类型;
  • text:响应内容,Unicode 类型;
  • status_code:响应状态码;
  • url:响应的最终 URL 位置;
  • encoding:当访问 r.text 时的编码;
  • json():将响应结果序列化为 JSON;

 

POST方法

import requests

def get_response(url, data, headers=None):
    result=requests.post(url=url,data=data,headers=headers).text
    return result

if __name__ == '__main__':
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
    }
    data = {
        "key1": "value1",
        "key2": "value2"
    }
    url = "http://httpbin.org/post"
    html = get_response(url, data, headers)
    print(html)

 

 


版权声明:本文为seanyang_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。