基本属性
requests.get是requests库的基本方法,请求的对象拥有status.code, text, cookies等基本属性,
也可以通过json的形式返回结果
对于想要下载的图片及视频,可以通过content的形式获取,并在本地通过with open write选择路径保存
Headers
requests也有headers的参数,来模拟浏览器headers的内容,对于一般有基础反爬机制的网站,需要加入header才能正常访问,并在header中加入cookies。一种获取cookies的方法是使用selenium方式获取,并加入header。而对于一些更复杂的网站,还需要在cookies中加入时间戳。
当需要模拟浏览器进行向网站传递信息的操作时,需要加入post参数
状态码
对response属性的反馈获取
对状态码的判断,对爬虫者而言,常见的反馈为200,403,404
其中100-200为没有差错的反馈
300开始为Redirection
400开始为Error的表示
500开始为server error
200为最理想的反馈;403为网站禁止请求;404为网站没被找到
一般的无反爬网站,爬虫时不加入休眠也会一直反馈200
文件上传
文件上传为post方法的一部分,使用file的参数
获取cookies
获取cookies为较为重要的方法,通过获取cookies,可以最仿真的模拟request headers,从而绕过最基本的反爬机制
但通过requests获取cookies需要维持当前的session,即会话
如通过如下方式请求当前页面两次,两次requests是独立的请求,相当于一次浏览器请求后再用新的浏览器请求,第一次的请求cookie无效化了。
故此时需要使用session的方式来完成模拟同一浏览器访问两次的操作,并且不需要处理cookies的问题。可用于模拟登录页面。
证书验证
对于需要证书验证的网页,将get方法里的verify参数调为False即可,或使用cert参数
设置代理
对于requests里的代理设置,使用proxies参数传入字典即可
超时设置
有时爬虫过程会出现网站相应很久的情况,影响心情。故使用超时设置也是很好的方法,若超时则停止并报异常,或使用try语句捕捉错误。
认证设置
有些网站需要登陆验证,这时使用get方法里的auth参数进行处理
异常处理
进入requests的官方文档,可以总结出requests库自己总结的异常及定义
参考资料:
崔庆才的个人博客: https://cuiqingcai.com/
Python requests库官方文档