HTTP协议:
URL格式:http://host:port[path]
host:合法的Internet主机域名或IP地址
path:请求资源的路径
URL是通过HTTP协议存取资源的Internet路径。
requests库的主要方法:
1、r = requests.request():构造一个请求,支撑以下各方法的基础方法
2、r = requests.get():获取HTML网页的主要方法
3、r = requests.head():获取HTML网页头部信息的方法
4、r = requests.post():向网页提交post方法,请求向URL位置后加新数据
5、r = requests.put():向网页提交put方法,请求向URL位置后加新数据,覆盖原资源
6、r = requests.patch():向网页提交局部修改请求
7、r = requests.delete():向网页提交删除请求
参数:
requests.request(method, url, **kwargs):
**kwargs:控制访问参数(13个),可选
1、params:字典,作为参数增加到url中
2、data:字典或文件对象,作为request的内容,不放在URL链接中
3、**json:**JSON格式数据,作为request内容
4、headers:HTTP定制头,字典(可模拟浏览器)
5、files:字典类型,传输文件,作为request内容
6、timeout:设定访问时间,单位秒
例1:爬取京东商品信息
import requests
url='http://...'
try:
kv = {'user-agent':'Mozilla/5.0')
r = requests.get(url,headers=kv) #更换头部,模拟浏览器发起请求
r.raise_for_status() #如果返回状态码为200,不产生异常;否则产生异常
r.encoding=r.apparent_encoding
print(r.text[:1000]) #取前1000个字符的信息
except:
print("失败")
例2:百度搜索关键词提交
#百度关键词搜索接口:http://baidu.com/s?wd=keyword
import requests
keyword = "python"
try:
kv = {'wd':keyword}
r = requests.get("http://baidu.com/s",params=kv)
print(r.request.url)
r.raise_for_status()
except:
print("失败")
例3:图片
import requests
import os
url = "http://..."
root = "D://pics//"
path = root + url.split('/')[-1] #存储文件路径,用URL中的部分作为图片名
try:
if not os.path.exists(root): #判断根目录是否存在,如果不存在创建一个
os.mkdir(root)
if not os.path.exists(path): #判断文件是否存在,如果不存在执行以下代码
r = requests.get(url)
with open(path, 'wb') as f:
f.write(r.content) #将文件用二进制形式存储
f.close()
print("保存成功")
else:
print("文件已存在")
except:
print("爬取失败")