python爬虫(九)-------------------requests

import json
import requests
from PIL import Image
from io import BytesIO

# print(dir(requests))

'''
url = 'http://www.baidu.com'
r = requests.get(url)
print(r.text)
print(r.status_code)
print(r.encoding)
'''

# 传递参数:比如http://aaa.com?pageId=1&type=content
'''
#这样写就不用拼字符串了
params = {'k1':'v1', 'k2':'v2','k3':None}
r = requests.get('http://httpbin.org/get', params)
#httpbin.org是一个开源的http请求测试网站有很多网站上的请求方式以供测试
print(r.url)
'''

# 二进制数据(搞图片)

'''
r = requests.get('http://i-2.shouji56.com/2015/2/11/23dab5c5-336d-4686-9713-ec44d21958e3.jpg')
image = Image.open(BytesIO(r.content))#用二进制内容生成一张图片r.content是二进制数据
image.save('meinv.jpg')
'''

# json处理
'''
r = requests.get('https://github.com/timeline.json')
print(type(r.json))
print(r.text)
'''

# 原始数据处理(搞的图片)
'''
r = requests.get('http://i-2.shouji56.com/2015/2/11/23dab5c5-336d-4686-9713-ec44d21958e3.jpg', stream = True)
'''
'''
用原始的流数据一点一点的处理,不用一下处理很多,在大数据下这样效率较高(比较省内存)
基本所有的数据文件都是二进制文件,txt文本文件也是,只不过txt多做了一层处理
图片浏览器判断是什么文件一般不看后缀名,根据文件的头信息判断文件类型的
'''
'''
with open('meinv2.jpg', 'wb+') as f:
    for chunk in r.iter_content(1024):
        f.write(chunk)
'''

# 提交表单
'''
#如果你提交字典格式的数据就认为你是表单
form = {'username':'user', 'password':'pass'}
r = requests.post('http://httpbin.org/post', data = form)
print(r.text)
r = requests.post('http://httpbin.org/post', data = json.dumps(form))
print(r.text)
'''

# cookie
'''
url = 'http://www.baidu.com'
r = requests.get(url)
cookies = r.cookies
#print(cookies.get_dict())是个字典
#一个标准的遍历字典的方法:
for k, v in cookies.get_dict().items():
    print(k, v)
'''
#提交cookies:
'''
cookies = {'c1':'v1', 'c2': 'v2'}
r = requests.get('http://httpbin.org/cookies', cookies = cookies)
print(r.text)
'''

# 重定向和重定向历史,一般是用来跟踪网站的url跳转信息
'''
r = requests.head('http://github.com', allow_redirects = True)
print(r.url)
print(r.status_code)
print(r.history)
'''

# 代理,即代转发一下信息vpn在更底层
#可以用来翻墙(只要代理支持)
'''
proxies = {'http': ',,,', 'https': '...'}#http与https代理
r = requests.get('...', proxies = proxies)
'''
    

o非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症

Requests 允许你发送纯天然的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,因为 Requests 内部是urllib3

猜你喜欢

转载自blog.csdn.net/qq_41228218/article/details/88982196