python3 Requests库,网络爬虫(上)

一、什么是Requests

Requests是用python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。

它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。

一句话——Python实现的简单易用的HTTP库

二、安装Requests

打开cmd命令行,输入如下代码:

pip install requests

三、用法讲解

实例引入

import requests

response = requests.get('http://www.baidu.com')
print(type(response))        #类型    
print(response.status_code)   #状态码
print(type(response.text))    
print(response.text)          #相当于urllib.request.urlopen
print(response.cookise)

各种请求方式

import requests
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/post')
requests.delete('http://httpbin.org/post')
requests.head('http://httpbin.org/post')
requests.options('http://httpbin.org/post')

不过这一块代码我还没有弄明白是干什么用的,了解以后再给大家加上。

请求

基本get请求

基本写法

import requests

response = requests.get('http://httpbin.org/get')
print(response.text)

带参数GET请求

把参数直接添加打url后边,同时这里要进行字符编码。如下所示,非常麻烦。

import requests

response = requests.get('http://httpbin.org/get?name=germey&age=22')
print(response.text)

因此我们可以字典的形式,将需要的参数传输到里面

import requests

data = {
    'name':'germey',
    'age':22
}
response = requests.get('http://httpbin.org/get',params=data)
print(response.text)

解析json

这里介绍一下json是什么,json(javaScript Notation ,JS对象的数据简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。精简喝清楚的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机械解析和生成,并有效地提升网络传输效率。任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。

简单地说,JSON可以将JacvaScript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。

import requests

response = requests.get('http://httpbin.org/get')
print(type(response.text))
print(response.json())
print(type(response.json()))

获取二进制数据(可以抓起图片)

import requests

#获取目标图片的编码
response = requests.get('https://www.baidu.com/img/bd_logo1.png')
print(type(response.text),type(response.content)) #response.content获取二进制编码
print(response.text)
print(response.content)
#将网上抓取的图片保存到本地,使用with open('文件名','存储类型') as f:
with open(r'D:\python jiaoben\spyder\pictures\百度logo.jpg','wb') as f:   #wb-以二进制的形式打开一个文件并只用于写入,如果该文件已经存在则打开,并从头开始编辑,即删除原有内容。如果文件不存在,创建新文件。\表示绝对路径,/表示相对路径。
    f.write(response.content)      #.write()是写入的意思。
    f.close()                      #.close()关闭文件。在python中此行代码可以省略。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值