requests库_python学习笔记

requests库

  • 1. get请求
    • 1.1 get发送无参数请求
    • 1.2 get发送有参数请求
  • 2. post请求

1. get请求

1.1 get发送无参数请求

import requests

r = requests.get('https://www.baidu.com')
print(r.status_code) // 打印出来是200

1.2 get发送有参数请求

  • 不带请求头的get请求
import requests

url="https://movie.douban.com/j/search_subjects"
// query参数用字典类型
query_data = {
	"type": "movie",
	"tag": "华语",
	"page_limit": 50,
	"page_start": 0
}
// get的第一个参数是url,第二个参数是params
r = requests.get(url, params=query_data)
print(r.status_code) // 打印出来是418,是反爬虫机制,要把User-Agent加到请求头里
  • 带参数的get请求
import requests

url="https://movie.douban.com/j/search_subjects"
// query参数用字典类型
query_data = {
	"type": "movie",
	"tag": "华语",
	"page_limit": 50,
	"page_start": 0
}
my_header = {
	"User-Agent": 把浏览器里的请求头里的User-Agent放在这里
}
// get的第一个参数是url,第二个参数是params,第三个参数是headers
r = requests.get(url, params=query_data, headers=my_header)
print(r.request.headers) // 查看请求头
print(r.status_code) // 打印出来是200

response_data = r.json()
print(response) // 打印出来的结果,是字典类型数据
// 读取response的内容
subjects = response_data.get('subjects')
for subject in subjects:
	print(subject.get('rate'), subject.get('title'))

此时response_data是字典类型数据
{
‘subjects’:[
{
‘rate’: 3.8,
‘title’:‘侏罗纪公园’
},

‘rate’: 4.2,
‘title’:‘侏罗纪公园2’

]
}

2. post请求

import requests

url="http://49.233.108.117:3000/api/v1/topics"
// body参数用字典类型
body_data = {
	"title": "helloworld",
	"context": "xxxxxxx"
}
// post的第一个参数是url,第二个参数是data,此时把body_data传给data
r = requests.post(url, data=body_data)
print(r.request.headers) // 此时headers里的Content-Type是"application/x-www-form-urlencoded"表单格式,此时发送的是表单格式的数据

// post的第一个参数是url,第二个参数是json,此时把body_data传给json
r = requests.post(url, json=body_data)
print(r.request.headers) // 此时headers里的Content-Type是"application/json"格式,也就是此时发送的是json格式数据

// 如果post里要加headers
my_headers = {
	"xxx": xxx
}
// post的第一个参数是url,第二个参数是json,第三个参数是headers,把my_headers给headers参数
r = requests.post(url, json=body_data, headers=my_headers)
print(r.request.headers)

你可能感兴趣的:(python,python)