网络爬虫是当下非常火的工作岗位,有不少人想要入行爬虫领域,想必大家都知道,学习爬虫除了开发语言以外,框架的选择也是很重要的。比如说如果是小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。其中Python不仅是非常适合网络爬虫的编程语言,拥有各种各样的框架,对网络爬虫有着非常重要的作用,那么Python相关爬虫的框架有哪些,我们就来简单的了解下。
1、scrapy框架,是一套比较成熟的Python爬虫框架,是使用Python开发的快速、高层次的信息爬取框架,可以高效的爬取web页面并提取结构化数据。这是很多人会选择的框架。这里简单的示例下这个框架在爬虫里面是怎么实现的。

#! -*- encoding:utf-8 -*-
        import base64            
        import sys
        import random

        PY3 = sys.version_info[0] >= 3

        def base64ify(bytes_or_str):
            if PY3 and isinstance(bytes_or_str, str):
                input_bytes = bytes_or_str.encode('utf8')
            else:
                input_bytes = bytes_or_str

            output_bytes = base64.urlsafe_b64encode(input_bytes)
            if PY3:
                return output_bytes.decode('ascii')
            else:
                return output_bytes

        class ProxyMiddleware(object):                
            def process_request(self, request, spider):
                # 代理服务器(产品官网 www.16yun.cn)
                proxyHost = "t.16yun.cn"
                proxyPort = "31111"

                # 代理验证信息
                proxyUser = "username"
                proxyPass = "password"

                request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort)


                # [版本>=2.6.2](https://docs.scrapy.org/en/latest/news.html?highlight=2.6.2#scrapy-2-6-2-2022-07-25)无需添加验证头,会自动在请求头中设置Proxy-Authorization     
                # 版本<2.6.2 需要手动添加代理验证头
                # request.headers['Proxy-Authorization'] = 'Basic ' +  base64ify(proxyUser + ":" + proxyPass)                    

                # 设置IP切换头(根据需求)
                # tunnel = random.randint(1,10000)
                # request.headers['Proxy-Tunnel'] = str(tunnel)

                # 每次访问后关闭TCP链接,强制每次访问切换IP
                request.header['Connection'] = "Close"```

2、Crawley框架,是Python开发出来的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。

3、Portia框架,一款允许没有任何编程基础的用户可视化地爬取网页的爬虫框架。

4、newspaper框架,一个用来提取新闻、文章以及内容分析的Python爬虫框架。

5、Python—goose框架,该框架可以提取文章主体内容、文章主要图片、文章中嵌入的任何Youtube/Vimeo视频、元描述、元标签。