Python爬虫之requests
爬虫之requests 库的基本用法
基本请求:
requests库提供了http所有的基本请求方式。例如
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")
基本GET请求
最基本的GET请求可以直接用get方法
r = requests.get("http://httpbin.org/get")
如果想要加参数,可以利用 params 参数
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
print r.url
结果:
http://httpbin.org/get?key1=value1&key2=value2
基本POST请求
对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text
结果:
{
"args": {},
"data": "",
"files": {},
"form": {
"key1": "value1",
"key2": "value2"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.4"
},
"json": null,
"origin": "221.232.171.232",
"url": "http://httpbin.org/post"
}
可以看到参数传成功了,然后服务器返回了我们传的数据。
有时候我们需要传送的信息不是表单形式的,需要我们传JSON格式的数据过去,所以我们可以用 json.dumps() 方法把表单数据序列化。
import json
import requests url = 'http://httpbin.org/post'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload))
print(r.text)
结果:
{
"args": {},
"data": "{\"some\": \"data\"}",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.4"
},
"json": {
"some": "data"
},
"origin": "221.232.171.232",
"url": "http://httpbin.org/post"
}
例子一:
import requests
r = requests.get('http://cuiqingcai.com')
print type(r)
print r.status_code
print r.encoding
#print r.text
print r.cookies
结果:
<class 'requests.models.Response'>
200
UTF-8
<RequestsCookieJar[]>
例子二:
import requests
import scrapy
from lxml import etree
url='https://book.douban.com/subject/1083428/comments/'
r=requests.get(url).text
s=etree.HTML(r)
file=s.xpath('//*[@id="comments"]/ul/li/div[2]/p/text()')
print(file)
结果:
['影响当今的偶像剧、言情小说太多太多了,绝对是言情小说的源头啊……不过可惜现在的偶像剧、小说只学到奥斯汀的套路,却缺乏那一种敏锐感以及对社会的鞭挞,因此沦为娱乐的工具。以此看来,奥斯汀值得经典', '女人和男人写出来的东西真是不一样。同样是爱情,女人事无巨细的小世界,充满细碎的心理和对话描写,而站在男人的世界,无非就是爱与不爱了', '女孩儿爱这本书就像男孩爱基督山伯爵一样', '开启kindle扫击名著模式。', '误会是必然的,谅解是偶然的,相爱是偶然中的偶然。', '现实中也许会有伊丽莎白,却不太会有达西,所以伊丽莎白会变成剩女', '不!好!看!翻译腔重!全是无趣对话!剧情毫无亮点!弃!', '心心念念达西先生,却被一条点评泼得满脸冷水,她写到,Jane Austen 说过世界上没有达西生生。', '受不了奥斯丁的所有小说,一堆女人男人磨磨蹭蹭叽叽歪歪,烦死了', '简是把所有实现不了的梦都寄托在这本书中了,\n快35岁的单身身份读着这个故事,也会为书中的大团圆结局高兴,但真的也只是看看而已了。\n最近看的童话故事太多,不利于身心健康。20131229', '一出场人物的各自性格都设定好了,矛盾冲突也做好了铺垫,作者就放心地设计一场又一场好戏,果然是适合改编成影视剧。印象特别深刻的是女主人公伊丽莎白特别喜欢“大叫”,见到亲人激动地大叫,看到来信“不禁大叫起来”……', '不过又是一个王子跟灰姑娘的故事罢了', '类似唐顿庄园。。书一般吧,没感觉多经典。两对爱情,从认识写到结婚,一年时间。一对从开始就有好感,一对从开始没好感,不过最后都幸福在一起了。有钱,有美貌。。感觉那些女人的生活真是枯燥啊,如果没有舞会,也就太死气沉沉了。。。', '那个用求婚来表示我爱你的年代让人颠倒沉沦', '亮点在何处..', '莉兹的独立和聪明,简的善良和宽容,搭配上她们漂亮的脸蛋儿,都是很迷人的。然而简奥斯丁太刻薄了,而这刻薄所针对的,除了那位贵族老寡妇,全是自己最亲近的人,愚蠢的妈妈,没有同情心的父亲,势利眼的表亲,放荡的姊妹…未免太无情了一点。从女人那里,你更明白爱情的发生,是建立在很多现实的条件基础之上的', '无语', '达西先生是我童年偶像心中白马王子', '我讨厌这本书。', '是翻译的有问题?好玻璃心吧反正就感觉']
Python爬虫之requests的更多相关文章
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- Python爬虫练习(requests模块)
Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...
- python爬虫之requests库
在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...
- Python 爬虫二 requests模块
requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...
- python爬虫之requests库介绍(二)
一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...
- Python爬虫之requests库介绍(一)
一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...
- Python爬虫之requests模块(1)
一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...
- Python爬虫之requests模块(2)
一.今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 二.回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 三. ...
- python爬虫值requests模块
- 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...
随机推荐
- Python 运维
1.python解释器提供提供的小工具 1.1 一秒钟启动一个下载服务器 进入要下载文件的目录(shift+鼠标右键可以很快的在当前目录打开一个cmd) python2: python2 -m Sim ...
- Git环境配置
1,下载Git-2.16.2-64-bit.exe并安装, 全部为默认设置 下载地址:http://git-scm.com/download/win 2 在开始菜单中,单击Git CMD,执行下面命令 ...
- oracle 新建用户后赋予的权限语句
grant create session,resource to itsys; grant create table to itsys;grant resource to itsys;grant cr ...
- windows程序设计 Unicode和多字节
Unicode和多字节 Unicode是宽字符 多字节是窄字符 类型 变量类型 初始化方式 Unicode LPWSTR L"string" 多字节 LPSTR "str ...
- linux挂载概念简述:
挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载” 1.挂载:根 ...
- 怎样下载youtube的字幕
第一步:安装chrome浏览器 第二步:安装Tampermonkey扩展. google.com的页面 第三步:使用下面两个链接安装(点进去后点击安装此脚本即可)脚本1,脚本2
- MongoDB集群单mongos的问题总结
问题发现 在使用过程中,通过spark访问集群的效率不是很令人满意,80核心同时运行的速度比单核心也就快了20倍左右,预测瓶颈在mongodb读写上.当然,此时没遇到其他问题暂时没进行问题梳理. 在数 ...
- JavaScript Dom 查找
JavaScript Dom 查找 一.直接查找 获取单个元素 document.getElementById('i1') 获取多个元素(列表数组) document.getElementsByTag ...
- java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie解决方法
当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名上存取用户信息. 比如有三个domain分别为test.com,cml.test.com,b.test.com这 ...
- DataFrame 行列数据的筛选
一.对DataFrame的认知 DataFrame的本质是行(index)列(column)索引+多列数据. DataFrame默认索引是序号(0,1,2…),可以理解成位置索引. 一般我们用id标识 ...