码迷,mamicode.com
首页 > 编程语言 > 详细

Python爬虫---requests库快速上手

时间:2018-07-18 21:43:03      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:value   eth   out   iss   获取   display   get   接受   post   

一、requests库简介

requests是Python的一个HTTP相关的库

requests安装:

pip install requests

二、GET请求

技术分享图片
import requests   # 首先导入reqeusts模块

res = requests.get(     # 使用requests模拟浏览器发送一个get请求
    url="https://www.baidu.com",   # 指定访问的网址
)


# 打印响应内容:网站的源代码
print(res.text)

# 打印二进制响应内容;我们在拉取音乐、视频等使用
print(res.content)
reqeusts初体验

我们发送get请求时,如果URL参数需要携带参数,那么数据会以键/值对的方式置于URL中,跟在一个问号的后面,例如:ttps://www.baidu.com/s?wd=hello

技术分享图片
import requests

#get请求,携带参数信息
#http://httpbin.org/get?key1=value1&key2=value2
payload = {key1: value1, key2: value2}
r = requests.get("http://httpbin.org/get", params=payload)

print(r.text)
get请求url携带参数

你还可以将一个列表作为值传入:

技术分享图片
#http://httpbin.org/get?key1=value1&key2=value2&key2=value3
payload = {key1: value1, key2: [value2, value3]}
r = requests.get("http://httpbin.org/get", params=payload)
传输多个值得时候

三、POST请求

通常,如果你想要发送一些编码为表单形式得数据的时候,只需要简单的给request的data传递一个字典即可。你的数据在发送请求时会自动编码为表单形式:

技术分享图片
import requests

payload = {key1: value1, key2: value2}
# 类似我们的请求体中的数据
r = requests.post("http://httpbin.org/post", data=payload)

print(r.text)
post请求

很多时候,你想发送出去的数据并非编码为表单形式,如果你想传输一个json字符串,而不是一个字典,那么数据会被直接发送过去

例如,Github API v3 接受编码为 JSON 的 POST/PATCH 数据:

技术分享图片
import requests
import json

payload = {some: data}
url = https://api.github.com/some/endpoint
r = requests.post(url, data=json.dumps(payload))

print(r.text)
post请求发送一个json字符串

四、requests参数总结

   :param method: 请求方法
    :param url: 目标地址的URL
    :param params: 请求参数:可以是字符串、字节、字典
    :param data:   可以是字典、字符串、字节、文件对象,发送的时候会在请求体中携带
    :param json: 将json中对应的数据进行序列化成一个字符串,在请求体中发送给服务器,并且Content-Type是 {Content-Type: application/json}
    :param headers: 请求头数据
    :param cookies: 请求携带的cookie
    :param files: 向服务器发送文件数据
    :param auth: Auth tuple以启用基本的/摘要/自定义http auth。
    :param timeout: 等待服务器响应时间,可以是浮点数
    :param allow_redirects: 是否允许自动重定向,True(默认),Flase
    :param proxies: 字典映射协议到代理的URL。
    :param verify: 控制我们是验证服务器的TLS证书,还是字符串,在这种情况下,它必须是CA包的路径才能使用。默认为“True”。
    :param stream: 是否以流的形式读取服务器传来的数据
    :param cert: 如果是字符串,则为SSL客户端证书文件(.pem)的路径。如果是元组,(‘cert’,‘key’)对。

五、响应

import requests
import json

payload = {some: data}
url = https://api.github.com/some/endpoint
r = requests.post(url, data=json.dumps(payload))

# 获取响应头
print(r.headers)
print(r.headers[Content-Type])  # ‘application/json‘
print(r.headers.get(content-type))  # ‘application/json‘

# 获取响应cookie
print(r.cookies[example_cookie_name])
print(r.cookies.get_dict())

# 获取响应体
print(r.text)
# 获取响应体(二进制形式)
print(r.content)

# 重定向与请求历史
print(r.url)
print(r.status_code)  # 响应状态码
print(r.history)

# json响应内容
print(r.json())  # [{u‘repository‘: {u‘open_issues‘: 0, u‘url‘: ‘https://github.com/...

 

Python爬虫---requests库快速上手

标签:value   eth   out   iss   获取   display   get   接受   post   

原文地址:https://www.cnblogs.com/weihengblog/p/9332576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!