当前位置 博文首页 > weixin_49470452的博客:爬虫干货2,哪些新搭建好的菠菜app是怎

    weixin_49470452的博客:爬虫干货2,哪些新搭建好的菠菜app是怎

    作者:[db:作者] 时间:2021-06-18 09:14

    ? 直接上反爬虫干货。主要讲网站搭建菠菜建站,开发搭建菠菜app反爬虫策略,而市面上主要针对以下四种反爬技术:扣扣3444065213:Useragent过滤;模糊的Javascript重定向;验证码;请求头一致性检查。高级的菠菜app搭建使用的反爬虫技术:都是需要绕过 “403 Forbidden”,验证码等更高技术难点的运用。如果我们想要把搭建菠菜app的程序彻底去掉他的反爬能力,就需要动用更多技术资源。

    搭建好的菠菜app是怎么做反爬虫部署,扣扣344.。406。52。13如下

    ? 我从不把爬取网页当做是我的一个爱好或者其他什么东西,但是我确实搭建过爬虫爬过很多菠菜项目。因为我所处理的许多工作都要求我得到无法以其他方式获得的数据。我需要为 Intoli 做关于游戏数据的静态分析,所以我爬取了Google应用商店的数据来寻找最新被下载的APK。Pointy Ball插件需要聚合来自不同网站的梦幻足球(游戏)的预测数据,最简单的方式就是写一个爬虫。在我在考虑这个问题的之前,我大概已经写了大约 40~50 个爬虫了。我不太记得当时我对我家人撒谎说我已经抓取了多少 TB 的数据,但是我确实很接近那个数字了。

    ? 我尝试使用 xray/cheerio、nokogiri 和一些其他的工具。但我总是会回到我个人的最爱 Scrapy。在我看来,Scrapy是一个出色的软件。我对这款软件毫无保留的赞美是有原因的,它的用法非常符合直觉,学习曲线也很平缓。

    ? 你可以阅读Scrapy的教程,在几分钟内就可以搭建网站,让你的第一个爬虫运行起来。然后,当你需要做一些更复杂的事情的时候,你就会发现,有一个内置的、有良好文档说明的方式来做到这一点。这个框架有大量的内置功能,但是它的结构使得在你用到这些功能之前,不会妨碍到你。当你最终确实需要某些默认不存在的功能的时候,比如说,因为访问了太多的 URL 链接以至于无法存储到内存中,需要一个用于去重的 bloom filter(布隆过滤器),那么通常来说这就和继承其中的组件,然后做一点小改动一样简单。一切都感觉如此简单,而且scrapy是我书中一个关于良好软件设计的例子。

    ? 我很久以前就想写一个高级爬虫教程了。这给我一个机会来展示scrapy的可扩展性,同时解决实践中出现的现实问题。尽管我很想做这件事,但是我还是无法摆脱这样一个事实:因为发布一些可能导致他人服务器由于大量的机器人流量受到损害的文章,就像是一个十足的坏蛋。

    ? 只要遵循几个基本的规则,我就可以在爬取那些有反爬虫策略的网站的时候安心地睡个好觉。换句话说,我让我的请求频率和手动浏览的访问频率相当,并且我不会对数据做任何令人反感的事情。这样就使得运行爬虫收集数据基本上和以其他主要的手动收集数据的方法无法区分。但即使我遵守了这些规则,我仍感觉为人们实际想要爬取的网站写一个教程有很大的难度。

    ? 直到我遇到一个叫做Zipru的BT下载网站,这件事情仍然只是我脑海里一个模糊的想法。这个网站有多个机制需要高级爬取技术来绕过,但是它的 robots.txt 文件却允许爬虫爬取。此外,其实我们不必去爬取它。因为它有开放的API,同样可以得到全部数据。如果你对于获得torrent的数据感兴趣,那就只需要使用这个API,这很方便。

    ? 在本文的剩余部分,我将带领你写一个菠菜爬虫,处理验证码和解决我们在Zipru网站遇到的各种不同的挑战。样例代码无法被正常运行因为 Zipru 不是一个真实存在的网站,但是爬虫所使用的技术会被广泛应用于现实世界中的爬取中。因此这个代码在另一个意义上来说又是完整的。我们将假设你已经对 Python 有了基本的了解,但是我仍会尽力让那些对于 Scrapy 一无所知的人看懂这篇文章。如果你觉得进度太快,那么花几分钟的时间阅读一下Scrapy官网教程吧。

    建立工程搭建菠菜爬虫项目

    我们会在 virtualenv 中建立我们的项目,这可以让我们封装一下依赖关系。首先我们在~/scrapers/zipru中创建一个virtualenv ,并且安装scrapy包。

    mkdir ~/scrapers/zipru
    
    cd ~/scrapers/zipru
    
    virtualenv env
    
    . env/bin/activate
    
    pip install scrapy
    
    

    你运行的终端将被配置为使用本地的virtualenv。如果你打开另一个终端,那么你就需要再次运行. ~/scrapers/zipru/env/bin/active 命令 (否则你有可能得到命令或者模块无法找到的错误消息)。

    现在你可以通过运行下面的命令来创建一个新的项目框架:

    scrapy startproject zipru_scraper

    这样就会创建下面的目录结构。

    └── zipru_scraper
    ├── zipru_scraper
    │ ├──?init.py
    │ ├── items.py
    │ ├── middlewares.py
    │ ├── pipelines.py
    │ ├── settings.py
    │ └── spiders
    │ └──?init.py
    └── scrapy.cfg

    大多数默认情况下产生的这些文件实际上不会被用到,它们只是建议以一种合理的方式来构建我们的代码。从现在开始,你应该把 ~/scrapers/zipru/zipru_scraper 当做这个项目的根目录。这里是任何scrapy命令运行的目录,同时也是所有相对路径的根。

    这也只是整个菠菜反爬虫技术搭建方法总结的第一章,我会在后面的几期文章中陆续的把反爬虫技术分享出来,也请大家持续关注我。

    作者:所有菠菜app 都可以搭建
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    下一篇:没有了