python爬虫网站(开源精选)

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 Scrapy是一个快速的高级网页抓取和网页抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于广泛的用途,从数据挖掘到监控和自动化测试。框架示例Scrapy 是一个用于抓取网站和提取结构化数据的应用程序框架,可用于各种有用的应用程序,如数据挖掘、信息处理或历史存档。下面是一个爬虫的代码,它从网站http://quotes.toscrape.com 中抓取名言 ,遵循分页:import scrapy

class QuotesSpider(scrapy.Spider):
name = 'quotes'
start_urls = [
'http://quotes.toscrape.com/tag/humor/',
]

def parse(self, response):
for quote in response.css('div.quote'):
yield {
'author': quote.xpath('span/small/text()').get(),
'text': quote.css('span.text::text').get(),
}

next_page = response.css('li.next a::attr("href")').get()
if next_page is not None:
yield response.follow(next_page, self.parse)将其放入一个文本文件中,将其命名为类似名称 quotes_spider.py 并使用以下 runspider 命令运行:scrapy runspider quotes_spider.py -o quotes.jl完成后,您将在 quotes.jl 文件中获得 JSON 行格式的引号列表,其中包含文本和作者,如下所示:{"author": "Jane Austen", "text": "\u201cThe person, be it gentleman or lady, who has not pleasure in a good novel, must be intolerably stupid.\u201d"}
{"author": "Steve Martin", "text": "\u201cA day without sunshine is like, you know, night.\u201d"}
{"author": "Garrison Keillor", "text": "\u201cAnyone who thinks sitting in church can make you a Christian must also think that sitting in a garage can make you a car.\u201d"}
…蜘蛛中间件Spider 中间件是 Scrapy 蜘蛛处理机制的钩子框架,可以在其中插入自定义功能来处理发送给Spider进行处理的响应以及处理从蜘蛛生成的请求和项目。架构概览数据流:执行流程:该引擎获取从最初请求爬行蜘蛛。该引擎安排在请求调度程序和要求下一个请求爬行。该计划返回下一请求的引擎。该引擎发送请求到 下载器,通过下载器中间件。页面完成下载后,下载器生成一个响应(带有该页面)并将其发送到引擎,通过下载器中间件。该引擎接收来自响应下载器并将其发送到所述 蜘蛛进行处理,通过蜘蛛中间件。该蜘蛛处理响应并返回旗下的项目和新的要求(跟随)的引擎,通过蜘蛛中间件。该引擎发送处理的项目,以项目管道,然后把处理的请求的调度,并要求今后可能请求爬行。该过程重复(从第 1 步开始),直到不再有来自Scheduler 的请求 。安装指南Scrapy 需要 Python 3.6+,CPython 实现(默认)或 PyPy 7.2.0+ 实现。安装 Scrapy如果您使用的是Anaconda或Miniconda,则可以从conda- forge频道安装该软件包,该频道具有适用于 Linux、Windows 和 macOS 的最新软件包。要使用 安装 Scrapy conda,请运行:conda install -c conda-forge scrapy或者,如果您已经熟悉 Python 包的安装,则可以使用以下命令从 PyPI 安装 Scrapy 及其依赖项:pip install Scrapy注意:Scrapy 是用纯 Python 编写的,并且依赖于一些关键的 Python 包lxml,一个高效的 XML 和 HTML 解析器parsel,一个写在 lxml 之上的 HTML/XML 数据提取库,w3lib,用于处理 URL 和网页编码的多用途助手扭曲,一个异步网络框架密码学和pyOpenSSL,处理各种网络级安全需求核心API爬虫APIScrapy API 的主要入口点是Crawler 对象,通过from_crawler类方法传递给扩展。该对象提供对所有 Scrapy 核心组件的访问,它是扩展访问它们并将其功能挂钩到 Scrapy 的唯一方法。设置 API设置 Scrapy 中使用的默认设置优先级的键名和优先级的字典。每个项目都定义了一个设置入口点,为其提供了一个用于标识的代码名称和一个整数优先级。在Settings类中设置和检索值时,较大的优先级比较小的优222222先级更高 。蜘蛛加载器API这个类负责检索和处理跨项目定义的蜘蛛类。可以通过在SPIDER_LOADER_CLASS项目设置中指定它们的路径来使用自定义蜘蛛加载器 。他们必须完全实现scrapy.interfaces.ISpiderLoader接口以保证无错执行。信号 API将接收器的功能连接到信号。信号可以是任何对象,尽管 Scrapy 带有一些预定义的信号,这些信号记录在信号 部分。统计收集器 APIscrapy.statscollectors模块下有几个可用的统计收集器 ,它们都实现了StatsCollector 类定义的统计收集器 API (它们都继承自)。更多参考:https://github.com/scrapy/scrapy

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/37918.html