资讯专栏INFORMATION COLUMN

听说你好不容易写了个爬虫,结果没抓几个就被封了?(附工具)

Pluser / 2807人阅读

摘要:近来知乎上如雨后春笋般冒出了大把大把的爬虫教程。一个爬虫教程的案例三个月之后还能有效已经是万幸了。不过仍然要说明,即使经过多次验证,也无法保证一个的绝对可用性。这是个概率问题,工具的作用只是尽可能提高概率。

近来知乎上如雨后春笋般冒出了大把大把的爬虫教程。这是好事,学了 Python 基础的同学们可以很轻松地搜出许多练手的例子。不过我不是针对谁,我是说网上绝大多数的爬虫教程,其实都缺乏可操作性。

是的,也包括我自己写过的。

主要原因有两点:

教程是死的,网站是活的。页面会改版,接口会更新。一个爬虫教程的案例三个月之后还能有效已经是万幸了。比如我自己教程里的查天气案例,接口改动过很多次,数据也早就不更新。但发出去的文章被转发几次后就很难再维护更新了。我也只能在自己的论坛上发布更新消息和问题答疑:【Python 第43课】 查天气(1)。

但凡数据比较有价值的网站,一定都会有反爬措施,既是对数据的保护,也是避免机器流量干扰到正常用户的体验。所以光是写个网络请求,几乎不可能成功拿到数据。反爬措施千千万,应对反爬的手段万万千,这就是个不停斗智斗勇的过程,不存在一个教程就教会的万金油方法。

反爬里面最常见的一种手段就是,判断你的请求频率。如果你短时间内发送了大量的请求,甭管你是不是人,先封你账号或 IP 一段时间再说。所以,这就成了一个矛盾的地方:爬得太快会被封,爬得太慢又很耗时间。一般教程也许会说句:想要提升抓取效率并且降低被封的风险,可以使用代理 IP。然而这话说着倒轻松,网上免费的代理 IP 也不少,但每次找来能用的却没几个。总不至于每次为了写点小练习还去花钱买很多付费代理吧。况且现如今你真要买,也还未必能顺利买到可用的。

于是我们决定自己动手,一劳永逸地解决这个老大难问题:实现一个自动获取可用代理 IP 的接口。

基本思路还是从网上的几大免费平台获取 IP 地址,不同的是我们定期去检测 IP 的可用性。在调用接口时,提供可用性最高的 IP 地址列表。

网页上列出了几十个最新的推荐 IP,只是临时找几个做测试,可直接访问查看。

网页地址:http://lab.crossincode.com/pr...

API 接口地址:http://lab.crossincode.com/pr...

请求方法:GET

频率限制:不高于3秒1次

请求示例:

获取 5 个 IP

http://lab.crossincode.com/pr...

获取 5 个 HTTPS 的 IP

http://lab.crossincode.com/pr...

返回结果示例:

{
  "proxies": [
    {
      "http": "117.90.0.225:9000"
    },
    {
      "http": "186.154.146.26:8080"
    },
    {
      "http": "175.155.25.27:808"
    },
    {
      "http": "124.88.67.52:843"
    },
    {
      "http": "119.5.0.7:808"
    }
  ],
  "code": 1
}

于是,在你做爬虫练习时,只要通过接口获取几个 IP,作为你请求的 proxy,即可大大提高抓取的效率。目前我们自己的爬虫项目都在使用此接口。

不过仍然要说明,即使经过多次验证,也无法保证一个 IP 的绝对可用性。不同时间不同地域不同网络都有可能导致请求超时或失效。所以你的代码中也还是需要自己做好相应的异常处理。这是个概率问题,工具的作用只是尽可能提高概率。

我们不生产 IP,我们只是互联网的搬运工。

完整的接口参数说明,以及项目的源代码,可在公众号(Crossin的编程教室)后台回复 IP

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40830.html

相关文章

  • BeautifulSoup:网页解析利器上手简介

    摘要:文档写得很清楚,也有中文版,你只要看了最初的一小部分,就可以在代码中派上用场了。 关于爬虫的案例和方法,我们已讲过许多。不过在以往的文章中,大多是关注在 如何把网页上的内容抓取下来 。今天我们来分享下,当你已经把内容爬下来之后, 如何提取出其中你需要的具体信息 。 网页被抓取下来,通常就是 str 字符串类型的对象 ,要从里面寻找信息,最直接的想法就是直接通过字符串的 find 方法 ...

    Carl 评论0 收藏0
  • 爬虫+网站开发实例:电影票比价网

    摘要:注一篇去年的旧文,发现没在知乎发过,过来补个档。于是就有了我们这个小项目电影票比价网在我们这个网页上,会展示出当前热映的电影。涉及到模块主要是用来匹配不同渠道的影院信息代码结构项目主要有三块使用豆瓣每日更新上映的影片列表。 注:一篇去年的旧文,发现没在知乎发过,过来补个档。有个小问题是项目中淘票票的网页反爬提升且变动较多,目前暂不可用了。 时常有同学会问我类似的问题:我已经学完了 Py...

    Codeing_ls 评论0 收藏0
  • 如何用Python抓抖音上的小姐姐

    摘要:比如分钟破译朋友圈测试小游戏文章里用的方法但有些根本就没有提供网页端,比如今年火得不行的抖音。所以常用的方式就是通过在电脑上装一些抓包软件,将手机上的网络请求全部显示出来。总结下,重点是的抓取,关键是配置代理证书,难点是对请求的分析。 爬虫的案例我们已讲得太多。不过几乎都是 网页爬虫 。即使有些手机才能访问的网站,我们也可以通过 Chrome 开发者工具 的 手机模拟 功能来访问,以便...

    FingerLiu 评论0 收藏0
  • 用脚本实现自动抢红包

    摘要:添加插件开启开发者模式,加载自己建的插件目录即可测试现在到抢红包的页面刷新后就可以看到效果了,建议不要刷太频繁,我的已经被封了。 原文:http://laker.me/blog/2015/12/10/15_12010_auto_red_packet/欢迎交换友链 Lakers Blog--进击的程序媛Github:https://github.com/younglaker微博: 江小湖...

    DrizzleX 评论0 收藏0
  • 图床失效了?也许应该试试这个工具

    摘要:但线程过多也许会触发图床的保护机制,同时也和自己电脑配置有关,这个得结合实际情况考虑了。图床限制这个是图片过多一定是大概率出现的,上传请求的频次过高很容易被限流封。 showImg(https://segmentfault.com/img/remote/1460000019118030?w=1920&h=1016); 前言 经过几个小伙伴的提醒,发现个人博客中的许多图片都裂了无法访问;...

    aristark 评论0 收藏0

发表评论

0条评论

Pluser

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<