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大数据架构搭建。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用Python进行爬虫POST请求的方法如下: 首先,导入必要的模块和库,比如urllib.request和urllib.parse。 然后,设置请求的URL和请求头信息。 接下来,构建POST请求的参数,将参数进行编码。 使用urllib.request.Request()函数创建请求对象,传入URL、参数和请求头。 使用urllib.request.urlopen()函数发送请求,并获取响应。 对响应进行解码,读取数据。 最后,根据需要对数据进行处理。 下面是一个使用实例: ```python import urllib.request import urllib.parse import json url = 'https://fanyi.baidu.com/sug' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'} param = { 'kw':'剪刀' } param = urllib.parse.urlencode(param).encode('utf-8') request = urllib.request.Request(url, param, headers) response = urllib.request.urlopen(request) page = response.read().decode('utf-8') content = json.loads(page) print(content) ``` 以上代码是一个使用POST请求进行百度翻译的例子。首先设置请求的URL和请求头信息,然后构建POST请求的参数,并进行编码。接着使用urllib.request.Request()函数创建请求对象,传入URL、参数和请求头。最后使用urllib.request.urlopen()函数发送请求,并获取响应。对响应进行解码,读取数据。最后根据需要对数据进行处理。 #### 引用[.reference_title] - *1* *2* *3* [Python爬虫——Get和Post请求使用](https://blog.csdn.net/wpc2018/article/details/125778612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值