Python爬虫学习笔记-2.Requests库
Requests是Python的一个优雅而简单的HTTP库,它比Pyhton内置的urllib库,更加强大。
0X01 基本使用
安装 Requests,只要在你的终端中运行这个简单命令即可:
pip install requests
基本HTTP 请求类型:
r = requests.get('http://httpbin.org/get')
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")
简单的一个请求:
import requests
r = requests.get('http://192.168.125.129/config/sql.php?id=1')
print r.headers
print r.status_code
print r.url
print r.text
print r.content
GET方式:
import requests
payload ={'id':}
r = requests.get('http://192.168.125.129/config/sql.php',params=payload)
print r.url
print r.content
POST方式:
import requests
payload ={'id':}
r = requests.post('http://192.168.125.129/config/sql.php',data=payload)
print r.content
0X02 高级用法
1、设置headers
import requests
url='http://192.168.125.129/config/sql.php?id=1'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0'}
r= requests.get(url,headers=headers)
print r.text
2、模拟登录和抓取数据的简单示例
s = requests.session()
data = {'user':'用户名','passdw':'密码'}
#post 换成登录的地址,
res=s.post('http://www.xxx.com/login.php',data);
#换成抓取的地址
s.get('http://www.xxx.com/admin/config.php');
3、已知cookie,进行登录
import requests
raw_cookies="PHPSESSID=0c1e5a748e064e93e91cca1714708339; security=impossible"
cookies={}
for line in raw_cookies.split(';'):
key,value=line.split('=',)
cookies[key]=value
testurl='http://192.168.125.129/vulnerabilities/upload/'
s=requests.get(testurl,cookies=cookies)
print s.text
4、SSL证书验证问题
result=requests.get('https://www.v2ex.com', verify=False)
忽略验证SSL证书,不然会报错
5、302重定向
result=s.post(loginUrl,data=postdata,headers=header,verify=False,allow_redirects=False)
6、使用Python Requests上传表单数据和文件
import requests
url = "http://www.xxx.cn/upload.php"
files ={"username":(None,"test"),
'filename':('1.jpg',open('1.jpg','rb'),'image/jpeg'),
"password":(None,"test123!")}
res = requests.post(url, files=files)
print res.request.body
print res.request.headers
输出请求体、请求头效果如下:
--5e800fd12507423aa2e4a024db7b1fa1
Content-Disposition: form-data; name="username" test
--5e800fd12507423aa2e4a024db7b1fa1
Content-Disposition: form-data; name="password" test123!
--5e800fd12507423aa2e4a024db7b1fa1
Content-Disposition: form-data; name="filename"; filename="1.jpg"
Content-Type: image/jpeg --5e800fd12507423aa2e4a024db7b1fa1-- {'Content-Length': '', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.12.4', 'Connection': 'keep-alive', 'Content-Type': 'multipart/form-data; boundary=5e800fd12507423aa2e4a024db7b1fa1'}
参考资料:
http://cn.python-requests.org/zh_CN/latest/user/quickstart.html
Python爬虫学习笔记-2.Requests库的更多相关文章
- Python爬虫学习笔记-1.Urllib库
urllib 是python内置的基本库,提供了一系列用于操作URL的功能,我们可以通过它来做一个简单的爬虫. 0X01 基本使用 简单的爬取一个页面: import urllib2 request ...
- python爬虫学习,使用requests库来实现模拟登录4399小游戏网站。
1.首先分析请求,打开4399网站. 右键检查元素或者F12打开开发者工具.然后找到network选项, 这里最好勾选perserve log 选项,用来保存请求日志.这时我们来先用我们的账号密码登陆 ...
- Python爬虫利器一之Requests库的用法
前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...
- python爬虫学习(6) —— 神器 Requests
Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...
- (转)Python爬虫利器一之Requests库的用法
官方文档 以下内容大多来自于官方文档,本文进行了一些修改和总结.要了解更多可以参考 官方文档 安装 利用 pip 安装 $ pip install requests 或者利用 easy_install ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- Python学习笔记之——requests库
requests库一个优雅而简单的用于Python的HTTP库,可以极大的简化我们发送http请求及获取响应的代码. requests是python的第三方库,所以使用之前需要先安装. 1.安装之后就 ...
- python爬虫学习笔记
爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)“抓取系统”的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 简单来讲就是尽可 ...
- python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法
最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
随机推荐
- 关于VS2008和VS2013中字体的选择
我这学期上ASP.NET的课,用C#语言,配合VS2008.自己课余在研究手机游戏的开发,用的是C++语言,配合VS2013.这两种开发环境我自己试过好多字体,后来感觉适合我自己的应该是以下这两种: ...
- Selenium常用操作汇总二——如何得到弹出窗口
在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?ti ...
- Tensorflow不显示log
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
- 【2】JVM-JAVA对象的访问
Java中对象的访问 JAVA是面向对象的语言,那么在JAVA虚拟机中,存在非常多的对象,对象访问是无处不在的.即时是最简单的访问,也会涉及到JAVA栈.JAVA堆.方法区这三个非常重要的内存区域之间 ...
- numpy的排序
- 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...
- Eclipse初次java开发问题总结-3
上篇中提到解决的一个问题是mysql驱动报的: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link ...
- 多线程系列八:线程安全、Java内存模型(JMM)、底层实现原理
一.线程安全 1. 怎样让多线程下的类安全起来 无状态.加锁.让类不可变.栈封闭.安全的发布对象 2. 死锁 2.1 死锁概念及解决死锁的原则 一定发生在多个线程争夺多个资源里的情况下,发生的原因是 ...
- C#绘制数字图像灰度直方图
灰度直方图是灰度的函数,描述的是图像中具有该灰度级的像素的个数.如果用直角坐标系来表示,则它的横坐标是灰度级,纵坐标是该灰度出现的概率(像素的个数). 灰度直方图的分布函数: 其中,K是指第k个灰度级 ...
- PHI 数据库简介
PHI是一个致病菌的数据库,截止到2017年8月1号为止,最新的版本是4.3,数据库中收录了实验验证过的致病菌的信息,其中有176个来自动物的致病菌,227个来自植物的致病菌,3个来自真菌的致病菌; ...