网络爬虫是当下非常火的工作岗位,有不少人想要入行爬虫领域,想必大家都知道,学习爬虫除了开发语言以外,框架的选择也是很重要的。比如说如果是小型爬虫需求,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视频、元描述、元标签。
参与评论