欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

requests

程序员文章站 2022-05-07 10:56:13
...
  • requests初览

import requests
r = requests.get('https://www.baidu.com/')
print(r.status.code) # 获取请求的状态码
print(r.text)  # 响应的内容
print(r.cookies)

请求方式主要有Get、Post两种类型,另外还有Head、Put、Delete、Options等:
r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/put')
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
  • get请求

import requests

请求的链接:http://httpbin.org/get

  1. 最简单的get请求:r = requests.get('http://httpbin.org/get')
  2. 加了两个参数的请求(参数name:germey,age:22)
data = {
            'name':'germey',
            'age':22
          }
r = requests.get('http://httpbin.org/get',params=data)

请求的链接被构造成了:
http://httpbin.org/get?age=22&name=germey
返回的类型如果是JSON格式的,可以调用json方法:print(r.json())

  1. 加了headers信息的请求
    以‘知乎’-->‘发现’页面为例:
import requests
import re

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
r = requests.get("https://www.zhihu.com/explore", headers=headers)
pattern = re.compile('explore-feed.*?question_link.*?>(.*?)</a>', re.S)
titles = re.findall(pattern, r.text)
print(titles)

这里假如的headers信息包含了User-Agent字段信息,也就是浏览器标识信息,如若不加,知乎会禁止爬取。

  • 抓取二进制数据(比如图片、音频、视频等)
r = requests.get("https://github.com/favicon.ico")
print(r.text)
print(r.content)
  • post请求

data = {'name': 'germey', 'age': '22'}
r = requests.post("http://httpbin.org/post", data=data)
  • 响应

print(r.status.code) # 获取请求的状态码
print(r.headers) # 请求头
print(r.text)  # 获取响应的内容
print(t.content) # 获取响应的二进制形式的内容
print(r.cookies)
print(r.url) # 获取请求的URL
print(r.history) # 获取请求的历史

注意,这只是我的个人笔记,更详细对的内容可参考博主原博客 [Python3网络爬虫开发实战] 3.2.1-基本用法