Bootstrap

python爬虫-07-使用request发送get和post请求

上面我们介绍了urllib模块的使用,有一个比urllib更加“人性化”的模块,那就是requests库,使用它可以更加便捷的发起各种请求。

1、安装requests

pip install requests

2、python发送get请求

(1)发送简单请求

import requests
jier = requests.get('http://www.baidu.com')
print(jier.text)

输出为一个网页的html代码;

(2)添加Header

import requests

Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
jier = requests.get('http://www.baidu.com', headers=Header)
print(jier.text)

输出为一个网页的html代码;

(3)添加请求参数

import requests

jier = {'wd': '运维家的博客'}
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.text)

输出为一个网页的html代码;

(4)查看响应内容

text:这个是str的数据类型,是requests库将response.content进行解码的字符串,当有时候text放回的格式乱码的时候,可以采用下面的content的方式指定编码格式;

content:这个是直接从网络上面抓取的数据,没有经过任何解码,所以是一个bytes类型;

import requests

jier = {'wd': '运维家的博客'}
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)

# 使用text
print(suner.text)

# 使用content
print(suner.content.decode('utf-8'))

输出为一个网页的html代码;

(5)查看完整URL

import requests

jier = {'wd': '运维家的博客'}
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.url)

输出内容如下:

http://www.baidu.com/s?wd=%E8%BF%90%E7%BB%B4%E5%AE%B6%E7%9A%84%E5%8D%9A%E5%AE%A2

(6)查看响应头字符编码

import requests

jier = {'wd': '运维家的博客'}
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.encoding)

输出内容如下:

utf-8

(7)查看响应码

import requests

jier = {'wd': '运维家的博客'}
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.status_code)

输出内容如下:

200

3、python发送post请求

(1)发送简单请求

import requests
jier = requests.post('http://www.baidu.com')
print(jier.text)

输出结果为一个网页的html代码;

(2)发送带参数的请求

这里我们再次使用httpbin网站,这次就不介绍如何查看方法了,之前说过好几次了,直接用。

import requests

Test_Url = 'http://httpbin.org/post'
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
Data = {'name': 'yunweijia', 'type': 'gongzhonghao'}
jier = requests.post(Test_Url, headers=Header, data=Data)
print(jier.text)

输出结果如下:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "name": "yunweijia", 
    "type": "gongzhonghao"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "32", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", 
    "X-Amzn-Trace-Id": "Root=1-62822e2b-5a2c632c1d88fe0f597edd6f"
  }, 
  "json": null, 
  "origin": "223.71.97.14", 
  "url": "http://httpbin.org/post"
}


其他的参数和GET一样,直接使用即可,这里就不再一一举例了。

4、Requests使用代理

(1)未使用代理之前

import requests

Test_Url = 'http://httpbin.org/post'
Header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
jier = requests.post(Test_Url, headers=Header)
print(jier.text)

输出信息如下:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "0", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", 
    "X-Amzn-Trace-Id": "Root=1-62823bc1-6bcdae190bb802f8616c3032"
  }, 
  "json": null, 
  "origin": "223.71.97.14", 
  "url": "http://httpbin.org/post"
}


(2)使用代理之后

剩余内容请转至VX公众号 “运维家” ,回复 “170” 查看。

------ “运维家” ,回复 “170” ------
------ “运维家” ,回复 “170” ------
------ “运维家” ,回复 “170” ------

linux卸载硬盘,win7共享linux,linuxgdal安装,Linux7忘记密码,linux怎么进入文件的子目录,高通开源代码linux,linuxusr大小,重启服务器的linux命令,linux的jdk怎么安装啊;
linuxtar文件打不开,linux常用状态检测,linux成功开机界面,linux七种文件,linux命令,Linux+删除数据的命令,linux自动监听重启服务器,如何快速担任linux运维,Linux返回到波浪线,linux大数据架构搭建。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;