Python爬虫基础(四)Requests库的使用
首先需要安装:pip install requests
get请求
最基本的get:
# -*- coding: utf-8 -*-
import requests
response = requests.get("http://www.baidu.com/")
添加headers及查询参数:
# -*- coding: utf-8 -*-
import requests kw = {'wd':'秦时明月'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} # params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers) # 查看响应内容,response.text 返回的是Unicode格式的数据
print response.text # 查看响应内容,response.content返回的字节流数据
print respones.content # 查看完整url地址
print response.url # 查看响应头部字符编码
print response.encoding # 查看响应码
print response.status_code
post请求
最基本的post:
# -*- coding: utf-8 -*-
import requests
response = requests.post("http://www.baidu.com/", data = data)
传入查询参数:
使用有道翻译的例子
# -*- coding: utf-8 -*-
import requests formdata = {
"i":" python",
"from":"AUTO",
"to":"AUTO",
"smartresult":" dict",
"client":" fanyideskweb",
"salt":"",
"sign":" 2a6d78290492d163dbd6803b29e2489c",
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_ENTER",
"typoResult":"true"
} url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"} response = requests.post(url, data = formdata, headers = headers) print response.text # 如果是json文件可以直接显示
print response.json()
设置代理
# -*- coding: utf-8 -*-
import requests # 根据协议类型,选择不同的代理
proxies = {
"http": "http://12.34.56.79:9527",
"https": "http://12.34.56.79:9527",
}
# 私密代理
# proxy = { "http": "账户:密码@61.158.163.130:16816" }
response = requests.get("http://www.baidu.com", proxies = proxies)
print response.text
web客户端验证
# -*- coding: utf-8 -*-
import requests auth=('账户', '密码') response = requests.get('http://192.168.23.19', auth = auth) print response.text
比urllib2简单很多
cookie
如果一个响应中包含了cookie,那么我们可以利用 cookies参数拿到:
# -*- coding: utf-8 -*-
import requests response = requests.get("http://www.baidu.com/") # 返回CookieJar对象:
cookiejar = response.cookies # 将CookieJar转为字典:
cookiedict = requests.utils.dict_from_cookiejar(cookiejar) print cookiejar print cookiedict
模拟登录:
# -*- coding: utf-8 -*-
import requests # 创建session对象,可以保存Cookie值
ssion = requests.session()
# 需要登录的用户名和密码
data = {"email":"账户", "password":"密码"} # 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里
ssion.post("http://www.renren.com/PLogin.do", data = data) # ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面
response = ssion.get("http://www.renren.com/410046543/profile") print response.text
处理SSL验证
# -*- coding: utf-8 -*-
import requests
response = requests.get("https://www.baidu.com/", verify=True) # 也可以省略不写
# response = requests.get("https://www.baidu.com/")
# 如果SSL证书验证不通过,或者不信任服务器的安全证书,则会报出SSLError
print response.text # 如果我们想跳过 12306 的证书验证,把 verify 设置为 False 就可以正常请求了
import requests
response = requests.get("https://www.12306.cn/mormhweb/", verify = False)
print response.text
Python爬虫基础(四)Requests库的使用的更多相关文章
- Python爬虫基础之requests
一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前 ...
- python爬虫之一:requests库
目录 安装requtests requests库的连接异常 HTTP协议 HTTP协议对资源的操作 requests库的7个主要方法 request方法 get方法 网络爬虫引发的问题 robots协 ...
- PYTHON 爬虫笔记三:Requests库的基本使用
知识点一:Requests的详解及其基本使用方法 什么是requests库 Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库,相比u ...
- Python爬虫的开始——requests库建立请求
接下来我将会用一段时间来更新python爬虫 网络爬虫大体可以分为三个步骤. 首先建立请求,爬取所需元素: 其次解析爬取信息,剔除无效数据: 最后将爬取信息进行保存: 今天就先来讲讲第一步,请求库re ...
- 芝麻HTTP: Python爬虫利器之Requests库的用法
前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...
- python爬虫#网络请求requests库
中文文档 http://docs.python-requests.org/zh_CN/latest/user/quickstart.html requests库 虽然Python的标准库中 urlli ...
- 【python爬虫】用requests库模拟登陆人人网
说明:以前是selenium登陆取cookie的方法比较复杂,改用这个 """ 用requests库模拟登陆人人网 """ import r ...
- 网络爬虫入门:你的第一个爬虫项目(requests库)
0.采用requests库 虽然urllib库应用也很广泛,而且作为Python自带的库无需安装,但是大部分的现在python爬虫都应用requests库来处理复杂的http请求.requests库语 ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
- Python爬虫入门四之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
随机推荐
- c++ 开放随笔
1.设计或使用类时 一定先弄清流程 了解对象直接的关系(这个必须清楚) 如多对多,一对多,一对一关系.不然弄list map set时相对麻烦. 2.map 中key是不能重复的,可以看成一个主键,定 ...
- nginx 杂谈
http://blog.sina.com.cn/s/articlelist_1834459124_0_1.html
- POJ 1038 Bug Integrated Inc(状态压缩DP)
Description Bugs Integrated, Inc. is a major manufacturer of advanced memory chips. They are launchi ...
- PHP-001
ThinkPHP单字母函数(快捷方法)使用总结 http://www.cnblogs.com/caicaizi/p/5173093.html
- nodejs搭建简单web服务器!!
var http = require("http"), url = require("url"), path = require("path" ...
- 什么是LTE?
LTE是英文Long Term Evolution的缩写.LTE也被通俗的称为3.9G,具有100Mbps的数据下载能力,被视作从3G向4G演进的主流技术.它改进并增强了3G的空中接入技术,采用OFD ...
- capitalize()
capitalize() 是字符串的一个方法,用于把字符串的第一个字母转换成大写 In [1]: str = 'hello world' In [2]: str.capitalize() Out[2] ...
- CentOS安装最新版的火狐
1. 下载最新版的火狐 Firefox-latest.tar.bz2 2.yum -y remove firefox 3.rm -rf /usr/lib/firefox ##64位的机器为l ...
- CentOS-6.3安装配置Nginx--【测试已OK】
安装说明 系统环境:CentOS-6.3软件:nginx-1.2.6.tar.gz安装方式:源码编译安装 安装位置:/usr/local/nginx 下载地址:http://nginx.org/en/ ...
- linux制作RPM包
制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...