爬虫之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的更多相关文章

  1. 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块

    孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...

  2. Python爬虫练习(requests模块)

    Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...

  3. python爬虫之requests库

    在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...

  4. Python 爬虫二 requests模块

    requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...

  5. python爬虫之requests库介绍(二)

    一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...

  6. Python爬虫之requests库介绍(一)

    一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

  7. Python爬虫之requests模块(1)

    一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...

  8. Python爬虫之requests模块(2)

    一.今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 二.回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 三. ...

  9. python爬虫值requests模块

    - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...

随机推荐

  1. Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection

    Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnec ...

  2. 《linux就该这么学》第七节课:文件的各种权限以及linux分区命名规则

    笔记 (借鉴请改动) 5.3:文件特殊权限 SUID  临时拥有文件所有者的权限(基本上只是执行权限) SGID  临时拥有文件所有组的权限,在目录中创建文件自动继承该目录的用户组. SBIT  粘滞 ...

  3. word之个人设置

    1.视图设置.五种视图中一般都是用“页面视图”.标尺和导航窗口都需要显示出来,方便操作,显示比例就用最真实的100%比例. 2.设置文件自动保存时间间隔和位置 3.word段落设置,不允许西文单词中间 ...

  4. GoldenGate使用SQLEXEC和GETVAL实现码表关联

    使用OGG中的SQLEXEC参数,可以执行SQL语句或存储过程,再加上@GETVAL函数,可以在目标端获取源表没有的字段值.比如,源端有一个事实表和一个代码表COUNTRY_CODES,代码表中有两个 ...

  5. oracle(3)

    存储过程: CREATE OR REPLACE PROCEDURE PROC_ABC ( currency IN NUMBER, aysdate IN DATE, money OUT number ) ...

  6. button theme

    children:[ButtonTheme.bar( child:ButtonBar( children:[ FlatButton... ], ),), ]

  7. Python select实现socket并发

    Python select  Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时 ...

  8. ukylin 使用deepin-wine

    之前一直是使用deepin的,但是自打前阵子更新内核之后,我的显卡就总出问题,这里也顺便f**k下NVIDIA. 在装了十几二十遍系统之后我终于还是妥协了,deepin最近又更新了,不知道解决我的显卡 ...

  9. HTTP长连接、短连接究竟是什么?

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  10. 2018-2019-2 20189206 Python3学习

    python3简明教程学习 基本概念 脚本文件: 脚本文件英文为Script.实际上脚本就是程序,一般都是由应用程序提供的编程语言.应用程序包括浏览器(javaScript.VBScript).多媒体 ...