上回说到Python大星为走上爬虫之巅,从头修炼九天奇书《requests宝典》 修炼前,先锻炼一把武器,取名曰:九转点星枪,他就是“requests库” 作为一名初级爬者,炼器(安装)“requests库”,是你必备的一个技能。 Python大星手提九转点星枪,来到了“试炼之路”。 只听见试炼先知传声:欲进试炼之路,先得通过2道关,GET和POST请求。 说时迟,那时快。转眼间,python大星来到“初试场所”: httpbin.org,一个免费提供HTTP请求和测试的网站。 该网站会判断如果客户端发起的是 GET 请求的话,它返回相应的请求信息 可以发现,我们成功发起了 GET 请求,返回结果中包含请求头、URL、IP 等信息。 你以为就这么简单? 刚刚小试牛刀,一个无参的GET请求,接下来增加点难度 有参的GET请求: 你以为我只会这一种吗?大错特错,看招: 魔高一尺,道高一丈。很多网站为了防止初级爬者骚扰,设置了一道门槛。 举个栗子,知乎网站: why?他为什么拒绝了我? 道理很简单,“知乎”是大户人家,你以为是你随便登堂入室的吗? 你得懂点礼数,写个拜访帖。
一般我们抓过来的“俘虏”,属于“文字兵”。 对于特殊的“俘虏”,比如“图片”、“视频”、“音频”,他们经过一层伪装, 直接抓取的话,我们得到的是一串“乱码”,没有参考价值。 r.content带有一个 b,这代表是 bytes 类型的数据。 这个时候,就用到了你的基本功--Python基础 这里用了 open 方法,它的第一个参数是文件名称,第二个参数代表以二进制写的形式打开,可以向文件里写入二进制数据。
如果你很顺利轻松地看到这 少年我观你骨骼惊奇,乃是难得一见的练武奇才... 现在,你已经是一名合格的一级爬者... 莱蒂斯俺的杰特们,准备好了吗? 文件上传任务:某网站注册,需要上传你帅气的图片。 OK,我们用httpbin测试哈! Cookies任务:某些网站资源,需要登录后获取资源 cookies就好像你浏览网页的一张身份证 登录“今日头条”,获取cookies信息 在headers中传入Cookie参数 Session 对象在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能运行,否则会进行相应的提示,例如“请登录“。 比较麻烦的做法:每次接口请求后获取到响应中的cookie,然后下次请求带上这个cookie; 有其他方法??? requests的 Session会话对象来进行处理。会话对象让你能够跨请求保持某些参数。 它也会在同一个 Session 实例发出的所有请求之间保持 Cookie。 看看,就这么简单。 代理设置在“试炼之路”,有很多任务,完成任务可以增加“试炼积分” 对于“一级爬者”,必须完成3个“五星任务” 五星任务描述:某网站,当受到大规模频繁请求,会禁客户端的 IP,导致一定时间段内无法访问 设置User Agent(用户代理) 服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。 怎么办?代理怎么设置? 常见的代理: Android Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 Firefox Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 Google Chrome Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 iOS Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 超时设置当网站请求超时时,我们有一件“法宝”可以使用,设置超时时间 特别国外的一些网站,不设置超时时间 那就得等到“天荒地老,海枯石烂” |