爬虫与信息提取 1-1 - Requests库入门

你是无意穿堂风 偏偏孤倨引山洪

1进度

安装 requests

conda install requests

http://www.python-requests.org/en/master/


# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.text)

requests 库7个主要方法:

requests 库7个主要方法

requests - get()

r = requests.get(url)

r = requests.get("http://www.mi.com")
get()1
get()2
get()3

requests库

response 对象的属性:

response 对象的属性
status_code

理解response的编码:

理解response的编码

爬取网页的通用代码框架:

  • 网络连接有风险
  • 异常处理很重要

理解Requests库的异常:

Requests库的异常1
Requests库的异常2
# -*- coding: utf-8 -*-

import requests

def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常"

if __name__ == "__main__":
    url = "http://www.mi.com"
    print(getHTMLText(url))

HTTP协议及Requests库方法:

Http协议:

Http协议
url
url

Http协议对资源的操作:

Http协议对资源的操作1
Http协议对资源的操作2

http协议通过url对资源定位 通过以上6个操作方法对资源进行管理 每次操作都是独立无状态的(两次操作间没有关系)


区别

Requests库的head():

# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.headers)

Requests库的post():

post()
# -*- coding: utf-8 -*-

import requests

payload = {'key1':'value1', 'key2':'value2'}

r = requests.post('http://httpbin.org/post', data=payload)

print(r.text)

print:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "23", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.14.2"
  }, 
  "json": null, 
  "origin": "43.247.4.53", 
  "url": "http://httpbin.org/post"
}
data

Requests库的put():

put()

Requests库主要方法解析:

主要方法解析
0
1
2
3
4
5
6
7
8
9
10

get最常用!

get()

head()
post()
put()
patch()
delete()

小结:

库入门
框架

世界上所有的追求都是因为热爱
一枚爱编码 爱生活 爱分享的IT信徒
— hongXkeX

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,248评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,003评论 25 709
  • 基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议,而爬虫可以看作是...
    腩啵兔子阅读 1,532评论 0 17
  • 得不到的爱情可以唱一辈子 得到的一首就够了 凄美的悲剧可以流传千世 圆满的一笑便过了 我们的一生 这世界的万世 都...
    一个人走jade阅读 181评论 0 1