chevron_left

Scrapy 爬虫开发教程

免费
第 8 回

教程文档

Scrapy 爬虫开发教程 - 应对反爬虫的方法

2023年11月13日
Scrapy 爬虫开发教程

应对反爬虫的方法

IP 地址验证

有的站点,如果发现同一个 IP 地址,频繁的请求数据,就认为这是一个爬虫程序。

解决方法是,让 Scrapy 随机更换代理服务器,需要设置中间件,middlewares.py 中,增加如下类

def RandomProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta["proxy"] = get_random_proxy()
  • 这里并没有定义 get_random_proxy 函数,需要你自己定义。
  • get_random_proxy 函数,要能随机返回一个代理服务器的 IP 和端口号。
  • 至于代理服务器从哪里来?当然是你自己想办法准备了。

settings.py

DOWNLOADER_MIDDLEWARES = {
   'NoticeSpider.middlewares.RandomProxyMiddleware...

课程介绍

Scrapy 是适用于 Python 的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy 吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如 BaseSpider、sitemap 爬虫等,最新版本又提供了 web2.0 爬虫的支持。

Scrapy 是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。

尽管 Scrapy 原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问 API 来提取数据。