爬虫的requests的使用

1.requests对象
r=requests.get(url):有2个关键对象,构建一个向服务器请求资源的request对象,返回一个包含服务器资源的requests对象

2.response对象的属性
r.status_code:http请求的返回状态,200成功
r.text:http响应内容的字符串形式
r.encoding:从http header中猜测响应内容的编码方式
r.apparent_encoding:从内容中分析出响应内容的编码方式
r.content:http响应内容的二进制形式

3.response流程
r.status_code-------成功 r.text…
--------失败 产生异常

4.requests库的异常
requests.ConnectionError 网络连接异常,DNS查询失败,拒绝连接
requests.HTTPError http错误异常
requests.URLRequired url缺失异常
resquests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTineout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常
requests.raise_for_status() 返回的不是200,就产生异常requests.HTTPError

5.http协议
①超文本传输协议
②是基于“请求和响应”模式的(用户发出请求,服务器返回响应),无状态(第一次请求和第二次请求没有相关关联)的应用层协议(该协议工作在TCP之上)。
③http协议采用URL作为定位网络资源的标识。(URL格式http://host[:port][path])
host:Internet主机域名后Ip地址 port:端口号,默认80 path:请求资源路径
一个URL对应一个数据资源
④http协议对资源的操作
get:请求获取URL位置的资源
head:获取资源的头部信息
post:请求向URL位置的资源后附加新的数据
put:请求向URL位置存储一个资源,覆盖原URL位置资源
patch:改变该资源的部分内容,好处节省网络带宽
delete:请求删除URL位置存储的资源

6.requests的主要方法解析
①request(‘method’,url,**kwargs)
method:请求方式,对应get/put/post等7种(head,patch,delete,options)
url:获取页面url链接
**kwargs:控制访问的参数,共13个
params:参数增加到url后(url?params)
data:作为request的内容
json:作为request的内容(json格式的数据)
headers:定制http头字段
cookies:字典或CookieJar,request中的cookie
auth:元组,支持http认证功能
files:传输文件
timeout:设定的超时时间,秒为单位
proxies:设定访问代理服务器,可以增加登录认证,
allow_redirects:默认true,重定向开关
stream:默认true,获取内容立即下载开关
verify:默认true,认证SSL证书开关
cert:本地SSL证书路径
②post(url,data=None,json=None,**kwargs[11个参数])
③put(url,data=None,**kwargs[12个参数])
④patch(url,data=None,**kwargs[12个参数])
②③④的url都是拟更新的页面url连接
⑤delete(url,**kwargs) url:拟删除页面的url连接
⑥get(url,params=None,**kwargs)
url:拟获取页面的url链接
params:url中的额外参数
**kwargs:12个参数

7.网络爬虫的限制
①来源审查:判断User-Agent进行限制(比如正常用户用浏览器,user-agent中会有IE10等版本信息)
②发布公告:Robots协议(告知所有爬虫网站的爬取策略,要求爬虫遵守)

8.Robots协议(网络爬虫排除标准)
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行
形式:在网站根目录下的robots.txt文件

9.搜索引擎关键词提交接口
百度的关键词接口:
http://www.baidu.com/s?wd=keyword
eg: import requests
keword=“Python”
try:
kv={‘wd’:keyword}
r=requests.get(“http://www.baidu.com/s”,params=kv)
print(r.request.url)
r.raise_for_status()
print(len(r.text))
except:
print(“error”)
360的关键词接口:
http://www.so.com/s?q=keyword

10.网络图片的爬取和存储(图片的地址,右键复制图片地址,后缀为.jpg)
import requests
path=“C:\Users\anjunxia\Desktop”
url=“http://img.bimg.126.net/photo/V6nNeq8YN2xPBRxTz8w4VA==/5776429472056759812.jpg
r=requests.get(url)
图片是二进制格式,将图片转成文件(打开路径为path的文件,并将文件标识成f,写入文件中)
with open(path,‘wb’) as f:
f.write(r.content返回二进制格式)
f.close()
print(“success”)

完整python文件格式
import requests
import os
url=“http://img.bimg.126.net/photo/V6nNeq8YN2xPBRxTz8w4VA==/5776429472056759812.jpg
root=“C://Users//anjunxia//Desktop//”
path=root+url.split(’/’)[-1]
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(“suceess”)
else:
print(“file exits”)
except:
print(“error”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值