爬虫之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. 使用Typescript写的Vue初学者Hello World实例(实现按需加载、跨域调试、await/async)

    万事开头难,一个好的Hello World程序可以节省我们好多的学习时间,帮助我们快速入门.Hello World程序之所以是入门必读必会,就是因为其代码量少,简单易懂.但我觉得,还应该做到功能丰富, ...

  2. delphi “div”、“mod”、“\”除法运算符的区别与使用方法(附带FORMAT使用方法)

    Delphi中和除法相关的算术运算符有: div.mod和符号“\” 下面分别对他们的作用.操作数类型和返回值类型进行一下介绍: div:对2个整数进行除,取商,操作数需是integer类型,返回值也 ...

  3. PM九步法

    本文转载自网络. 多年以后,当我面对那些年青的产品经理,我会想起自己当年从事的是一份高薪的工作.那是2000年,我大学毕业后在北京一家IT网站做搜索引擎PM,当时我一个月的薪水能在亚运村买一平方米房子 ...

  4. numpy 数组对象

    numpy 数组对象NumPy中的ndarray是一个多维数组对象,该对象由两部分组成:实际的数据,描述这些数据的元数据# eg_v1 import numpy as np a = np.arange ...

  5. 微信小程序一些demo链接地址

    校园小情书小程序前端+后端源码 https://www.douban.com/group/topic/116974400/ 小程序源码疯狂猜成语小程序源码UI美观 https://www.douban ...

  6. saltstack 基本的批量操作

    centos 6.5 saltstack 2015.5.10 (Lithium) 基本用法 # salt 'DEV-APP-001' cmd.run 'hostname' #指定被控端 # salt ...

  7. yum无法安装的pdksh

    yum无法安装的pdksh,本地pdksh-5.2.14-37.el5_8.1.x86_64.rar,点击下载.

  8. [C++ Primer Plus] 第5章、循环和关系表达式(一)程序清单——指针自加减优先级

    程序5.4 #include<iostream> using namespace std; ; void main() { long long factorials[Size]; fact ...

  9. linux下对qt编写的程序进行部署

    当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题.对于我们在Linux下基于QT编写的图像处理程序,我们采用linuxdeploy ...

  10. CF285E Positions in Permutations

    思路 dp+二项式反演的神题 就是dp部分非常麻烦(好吧是我傻了 考虑先钦定m个满足条件的位置,这m个\(x_i\),只能放\(x_i-1\)或\(x_i+1\),然后其他的随便放(得出至少m个的方案 ...