python post 参数_python爬虫——requests库使用代理
在看这篇文章之前,需要大家掌握的知识技能:
python基础
html基础
http状态码
让我们看看这篇文章中有哪些知识点:
get方法
post方法
header参数,模拟用户
data参数,提交数据
proxies参数,使用代理
进阶学习
安装上requests库
pip install requests
先来看下帮助文档,看看requests的介绍,用python自带的help命令
import requests
help(requests)
output:
Help on package requests:NAMErequestsDESCRIPTIONRequests HTTP Library~~~~~~~~~~~~~~~~~~~~~Requests is an HTTP library, written in Python, for human beings. Basic GETusage:>>> import requests>>> r = requests.get('Welcome to Python.org')>>> r.status_code200>>> 'Python is a programming language' in r.contentTrue... or POST:>>> payload = dict(key1='value1', key2='value2')>>> r = requests.post('https://httpbin.org/post', data=payload)>>> print(r.text){..."form": {"key2": "value2","key1": "value1"},...}The other HTTP methods are supported - see `requests.api`. Full documentationis at <http://python-requests.org>.:copyright: (c) 2017 by Kenneth Reitz.:license: Apache 2.0, see LICENSE for more details.
这里解释下,requests库是由python编写的对人类友好的http库,并且举例了GET与POST的方法。
GET方法
好的,那我们自己来测试下,就以请求百度为例吧,,,(谁让百度这么耐抗的)
import requests
r = requests.get('百度一下,你就知道')
print(r.status_code) #打印返回的http code
print(r.text) #打印返回结果的text
方便点,截了个图给大家看,返回的code是200,说明请求正常拉回网页了。
看下返回的text,有点不对头,少了一些html标签,最起码百度两个字得有吧。嗯,这是什么原因,,,
相信有些同学已经想到了,是没有真实模拟用户的请求,你去爬数据,还不模拟用户请求,那肯定限制你啊。这个时候需要加一个header参数来搞定,至少要加一个user-agent吧。好,那咋们去找一个ua吧。别百度了,自己动手,丰衣足食。教大家一个办法,用谷歌或者火狐的开发者工具。
谷歌浏览器的开发者工具
打开新标签 —— 按F12——访问下百度——找到NetWork——随便点开一个——往下翻——看到ua了吧,复制上。
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
r = requests.get('百度一下,你就知道', headers=headers)
print(r.status_code)
print(r.text)
嗯~~~数据有点多,往下翻翻,这下就正常了嘛,数据都有了。。。PS:不信?可以自己输出一个html文件,浏览器打开看看呗
POST方法
只需要把get改成post就好了
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
r = requests.post('百度一下,你就知道', headers=headers)
print(r.status_code)
print(r.text)
运行下试试看。一般post都是用来提交表单信息的,嗯,这里找一个能提交数据的url,去post下。
用我自己写的接口(PS:django写的,挺方便),大家复制过去就好了。注意看代码,data是要post的数据,post方法里加了一个data参数。
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
# post的数据
data = {"info": "biu~~~ send post request"}
r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data) #加一个data参数
print(r.status_code)
print(r.text)
截个图给大家看下,http code 200,body信息说的post成功,并且返回的了我自己的IP信息以及post的数据
使用代理
为什么用代理?一般网站都有屏蔽的限制策略,用自己的IP去爬,被封了那该网站就访问不了,这时候就得用代理IP来解决问题了。封吧,反正封的不是本机IP,封的代理IP。
既然使用代理,得先找一个代理IP。PS:自己写个代理服务器太麻烦了,关键是我也不会写啊,,,哈哈哈
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
# post的数据
data = {"info": "biu~~~ send post request"}# 代理信息,由快代理赞助
proxy = '115.203.28.25:16584'
proxies = {"http": "http://%(proxy)s/" % {'proxy': proxy},"https": "http://%(proxy)s/" % {'proxy': proxy}
}r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data, proxies=proxies) #加一个proxies参数
print(r.status_code)
print(r.text)
主要方法里加个proxies参数,这就用上代理IP了。
python post 参数_python爬虫——requests库使用代理相关推荐
- python get方法列表参数_python中requests库get方法带参数请求
起因是想爬五等分的花嫁的漫画.这是其中的一个坑 先上代码 data={ 'cid':567464, 'page':, 'key':'', 'language':1, 'gtk':6, '_cid':5 ...
- python accept解析_python中requests库使用方法详解
一.什么是Requests Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库.它⽐ urllib 更加⽅便,可以节约我们⼤量的 ...
- python get方法请求参数_python中requests库get方法带参数请求
起因是想爬五等分的花嫁的漫画.这是其中的一个坑 先上代码 data={'cid':567464,'page':1,'key':'','language':1,'gtk':6,'_cid':567464 ...
- python的requests库的添加代理_python爬虫之requests库使用代理
python爬虫之requests库使用代理 发布时间:2020-03-25 17:00:54 来源:亿速云 阅读:110 作者:小新 今天小编分享的是关于python爬虫的requests库使用代理 ...
- 已解决(Python爬虫requests库报错 请求异常SSL错误,证书认证失败问题)requests.exceptions.SSLError: HTTPSConnectionPool
成功解决(Python爬虫requests库报错 请求异常,SSL错误,证书认证失败问题)requests.exceptions.SSLError: HTTPSConnectionPool(host= ...
- 【python】python爬虫requests库详解
1.安装:pip install requests 简介:Requests是一个优雅而简单的Python HTTP库,与之前的urllibPython的标准库相比,Requests的使用方式非常的简单 ...
- Python爬虫——Requests 库基本使用
文章目录 Python爬虫--Requests 库基本使用 1.Requests简介和下载 2.Requests 库基本使用 Python爬虫--Requests 库基本使用 1.Requests简介 ...
- python爬虫requests库_Python爬虫(三)Requests库
什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库.与urllib相比,Requests更加方便,可以节约 ...
- python爬虫requests库_python爬虫使用Requests库 - pytorch中文网
在入门教程中我们介绍了urllib库和urllib2的用法,同时我们了解一些爬虫的基础以及对爬虫有了基本的了解.其实在我们生产环境中,使用Request库更加方便与实用,同时我们这需要短短的几行代码就 ...
最新文章
- 体验首款Linux消费级平板,原来芯片和系统全是国产
- 第七篇:使用 CUDA 进行计算优化的两种思路
- SpringBoot 整合ActiveMQ_企业实战
- 高性能服务器编程 Twisted编程基础
- is和as在类型转换时的性能差异
- django的orm获取字段去重值
- Hyper-V上Linux的鼠标驱动
- isv支付宝小程序三方模板开发快速指南
- Android篮球计分器论文,基于单片机的篮球计时计分器设计_毕业设计论文
- 软件项目管理1:开发计划和版本计划举例
- 常用quartz表达式
- DM6437的中断和事件
- 用计算机计算实发工资,工资税率计算器 个税反推应发工资计算公式
- 采用中断模式编程并使用杜邦线模拟开关实现LED灯的亮灭
- web安全:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧
- H5案例分享:jquery.qrcode.js生成简易二维码
- PAT 1066. Root of AVL Tree (25) 回レ!雪月AVL
- 论文阅读——A higher-order CRF model for road network extraction
- 不用看盘让AI来帮你
- java上机六,Java上机实验6.doc
热门文章
- android电视接跳舞毯,跳舞毯怎么连接电视 跳舞毯怎么玩
- 问大家一个没有什么技术水平的问题!
- [Swift]LeetCode227. 基本计算器 II | Basic Calculator II
- Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding'
- 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档
- [PHP] - Laravel - CSRF token禁用方法与排除验证csrf_token的url设置
- innerdb disable error
- jquery开发的”天才笨笨碰“游戏
- 如何改变Static Text控件中文字的字体,字体大小及颜色。
- liferay+portlet+开发实例