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
- 最简单的get请求:r = requests.get('http://httpbin.org/get')
- 加了两个参数的请求(参数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())
- 加了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-基本用法
上一篇: 用js实现页面内跳转
下一篇: requests