当前位置: 首页 > news >正文

撤销网站备案表填写后斗牛app开发公司

撤销网站备案表填写后,斗牛app开发公司,东莞大岭山森林公园,网站建设答辩ppt下载目录 什么是Scrapy Scrapy核心组件 Scrapy扩展组件 组件交互流程 安装Scrapy Scrapy项目目录结构说明 创建Scrapy项目 创建爬虫 运行爬虫 配置请求头 全局配置请求头 指定爬虫配置请求头 配置管道pipeline 全局配置pipeline 方式一#xff1a;指定爬虫配置pipe…目录 什么是Scrapy Scrapy核心组件 Scrapy扩展组件 组件交互流程 安装Scrapy Scrapy项目目录结构说明 创建Scrapy项目 创建爬虫 运行爬虫 配置请求头 全局配置请求头 指定爬虫配置请求头 配置管道pipeline 全局配置pipeline 方式一指定爬虫配置pipeline 方式二指定爬虫配置pipeline 数据建模 items Scrapy官网https://scrapy.org/ 什么是Scrapy Scrapy 是一个基于 Python 的快速的高级网页抓取和网页爬取框架用于抓取网站并从其页面中提取结构化数据。它可用于多种用途从数据挖掘到监控和自动化测试。 Scrapy核心组件 1. Scrapy EngineScrapy引擎 Scrapy 引擎是整个系统的核心负责控制数据流在所有组件之间的流动。它从调度器获取请求发送给下载器处理然后将下载器返回的响应交给爬虫处理。2. Scheduler调度器 调度器负责接收引擎发来的请求并进行排序然后将这些请求发送给引擎。调度器可以处理优先级并且支持去重机制以避免重复抓取。3. Downloader下载器 下载器负责向互联网上的服务器发送请求并接收响应。Scrapy 下载器是高度异步的能够高效地处理大量请求。4. Spiders爬虫 爬虫是用户定义的类负责处理下载器返回的响应从中提取数据Item或进一步生成请求。每个爬虫定义了要抓取的域名和处理响应的逻辑。5. Item数据项 Item 是一种简单的数据容器用于存储从网页中提取的数据。Item 类似于字典但提供了额外的保护和方法。6. Item Pipeline数据管道 数据管道是一个序列化系统用于处理和存储从爬虫中提取的数据。每个管道组件负责处理数据项的一部分例如数据清洗、验证或存储。7. Downloader Middlewares下载中间件 下载中间件是介于调度器和下载器之间的钩子用于处理请求和响应。它们可以修改或扩展请求和响应的处理流程例如设置代理、修改请求头等。8. Spider Middlewares爬虫中间件 爬虫中间件是介于引擎和爬虫之间的钩子用于处理爬虫输入和输出的响应和结果。它们可以修改或扩展爬虫的处理流程例如添加额外的日志记录、处理异常等。 Scrapy扩展组件 1. Feed Exports数据导出 Scrapy 支持将抓取的数据导出为多种格式如 JSON、CSV、XML并可以配置导出的细节如字段顺序、编码等。2. Telnet ConsoleTelnet 控制台 Telnet 控制台提供了一个实时监控和调试爬虫的工具允许开发者在爬虫运行时进行交互式调试。3. Logging日志 Scrapy 内置了强大的日志系统用于记录运行时的各种信息如调试信息、错误消息等。日志系统可以配置不同的日志级别和输出格式。4. Extensions扩展 扩展模块用于增强 Scrapy 的功能例如自动重试失败的请求、监控爬虫性能等。开发者可以自定义扩展模块以满足特定需求。5. Stats Collectors统计收集器 统计收集器用于收集和记录爬虫运行时的各种统计信息如请求数量、响应时间等。统计信息可以用于优化和调试爬虫。 组件交互流程 初始请求爬虫从 start_urls 生成初始请求并通过引擎Engine发送给调度器Scheduler。请求调度调度器Scheduler将请求排序并发送给下载器Downloader。请求下载下载器Downloader向目标网站Internet发送请求并获取响应。响应处理下载器Downloader将响应发送给引擎Engine进而交给爬虫Spiders处理。数据提取爬虫Spiders从响应中提取数据项并生成新的请求如果有。数据处理提取的数据项通过数据管道Item Pipeline进行处理和存储。 安装Scrapy pip install scrapy Scrapy项目目录结构说明 Scrapy 项目的结构较为标准以下是一个典型的 Scrapy 项目的目录结构图示及其简要说明供方便理解。 myproject/ │ ├── myproject/ # 项目目录主目录 │ ├── __init__.py │ ├── items.py # 定义 Item 类数据结构 │ ├── middlewares.py # 自定义中间件 │ ├── pipelines.py # Item 处理管道 │ ├── settings.py # 项目设置文件 │ ├── spiders/ # 存放爬虫的目录 │ │ ├── __init__.py │ │ ├── example_spider.py # 定义爬虫 │ ├── scrapy.cfg # Scrapy 配置文件 │ └── README.md # 项目的说明文件可选创建Scrapy项目 使用 scrapy startproject 命令来创建一个新的 Scrapy 项目。打开终端或命令行进入你想要创建项目的目录并运行以下命令 # scrapy startproject 项目名称 scrapy startproject myproject创建爬虫 在项目根目录中你可以使用 scrapy genspider 命令创建新的爬虫。以下命令将创建一个名为 baidu 的爬虫用于抓取 www.baidu.com 的域名 # scrapy genspider 爬虫名称 允许爬取的域名 scrapy genspider baidu www.baidu.com完整目录结构如下 爬虫文件内容说明 解析方法解析response # 解析方法response爬取起始url的响应 def parse(self, response):# 解析示例with open(baidu.html, wb) as f:f.write(response.body) 运行爬虫 运行爬虫之前需要修改 settings.py 配置文件的配置如下 使用 scrapy crawl 命令来运行你的爬虫。以下命令会启动名为 baidu 的爬虫 # scrapy crawl 爬虫名称 scrapy crawl baidu配置请求头 全局配置请求头 在 settings.py 配置文件中配置 USER_AGENT 和 DEFAULT_REQUEST_HEADERS 参数示例如下 # Crawl responsibly by identifying yourself (and your website) on the user-agent USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 # Override the default request headers: DEFAULT_REQUEST_HEADERS {Accept: text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8,Accept-Language: zh-CN,zh;q0.9, } 指定爬虫配置请求头 在指定爬虫文件中配置 start_requests 方法示例如下 import scrapyclass TeibaSpider(scrapy.Spider):name teibaallowed_domains [tieba.baidu.com]start_urls [https://tieba.baidu.com/f?kw沙井]def start_requests(self):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36,Accept-Language: zh-CN,zh;q0.9,}for url in self.start_urls:yield scrapy.Request(url, headersheaders, callbackself.parse)def parse(self, response):pass 配置管道pipeline 全局配置pipeline 在 settings.py 配置文件中配置ITEM_PIPELINES 参数用于开启管道示例如下 # Configure item pipelines ITEM_PIPELINES {# myproject项目名称# pipelines项目下的pipelines.py文件# MyprojectPipelinepipelines.py文件中指定的类# 300管道优先级多个管道时数字越小优先级越高越先执行myproject.pipelines.MyprojectPipeline: 300, } pipelines.py 文件内容如下 当管道开启后在我们启动爬虫时日志打印信息如下 方式一指定爬虫配置pipeline 在指定爬虫文件中配置 custom_settings 属性示例如下 import scrapyclass TeiBaSpider(scrapy.Spider):name teibaallowed_domains [tieba.baidu.com]start_urls [https://tieba.baidu.com/f?kw沙井]# 指定 pipelinecustom_settings {ITEM_PIPELINES: {myproject.pipelines.TieBaPipeline: 300,}}def parse(self, response):item {}item[title] a.xpath(./title).get()item[url] https://tieba.baidu.com/ a.xpath(./href).get()# yield 的数据会返回到 TieBaPipeline 中yield itempipelines.py 文件内容如下 方式二指定爬虫配置pipeline 在 settings.py 配置文件中配置 ITEM_PIPELINES 参数配置多个示例如下 ITEM_PIPELINES {myproject.pipelines.BaiDuPipeline: 300,myproject.pipelines.TieBaPipeline: 301, } 在 pipelines.py 文件中通过爬虫名称判断 from itemadapter import ItemAdapterclass BaiDuPipeline:def open_spider(self, spider):# 初始化方法类比 def __init__(self)if spider.name baidu:passdef process_item(self, item, spider):if spider.name baidu:passreturn itemdef close_spider(self, spider):# 析构方法类比 def __del__(self)if spider.name baidu:passclass TieBaPipeline:def open_spider(self, spider):if spider.name tieba:passdef process_item(self, item, spider):if spider.name tieba:passreturn itemdef close_spider(self, spider):if spider.name tieba:pass数据建模 items 数据建模的好处是统一数据字段免得写错会在执行的时候对模板字段进行检测。清晰代码便于维护等好处。 1. 创建模型 在 items.py 文件中创建模型 import scrapyclass UserItem(scrapy.Item):# define the fields for your item here like:# 用户名称name scrapy.Field()# 用户年龄age scrapy.Field() 2. 爬虫中使用模型 import scrapy from myproject.items import UserItemclass BaiduSpider(scrapy.Spider):name baiduallowed_domains [www.baidu.com]start_urls [https://www.baidu.com]def parse(self, response):# 使用模型item UserItem()item[name] response.xpath(//h1/text()).get()item[age] response.xpath(//h2/text()).get()yield item 3. 管道中使用模型 from itemadapter import ItemAdapterclass MyprojectPipeline:def process_item(self, item, spider):# 把对象类型转换成字典类型item dict(item)return item
http://www.dnsts.com.cn/news/63454.html

相关文章:

  • 长春火车站官网wordpress 营销模板下载
  • win 2012 iis 默认网站百度h5游戏中心
  • 长沙建网站小程序软件制作网站
  • 广告网站建设网软件开发做网站
  • 台州网站制作方案线上商城是什么软件
  • 网站建设大概多少费用wordpress手机上发文章
  • 北京电商网站建设哪家好河南郑州消费情况
  • 厦门网站建设建网站济南做网站的哪家好
  • 做网站 报价51CTO学院个人网站开发视频
  • wordpress减肥网站采集规则百度站长工具app
  • 低价代网站如何进行课程中心网站建设
  • 建设公司网站开发方案线上线下一体化营销
  • 如何将网站上传到万网主机wd设计视图可以做网站吗
  • 湛江外包做网站官方网站开发需要几个技术人员
  • 中国建设银行官网站住房公积金网站备案要什么资料
  • 苏州手机网站建设服务基于拍卖的拍卖网站开发
  • 建网站的详细案例阳江兼职招聘网最新招聘
  • 怎么在后台设计网站wordpress it企业模板
  • 时尚网站设计案例建筑门户网站
  • 企业网站租服务器如何制作自己的网站链接教程
  • 网站开发建设流程图私人影吧服务器
  • 建设银行 钓鱼网站农产品网站建设方案
  • 焦作做网站公司佛山网约车驾驶员资格证网上报名
  • 内蒙古包头网站建设动漫网页设计作业
  • wordpress 小说多站最新网站建设的模板下载
  • 网站备案太久了免费网站教程
  • 成都网站建设费用网站建设进度计划
  • 网站制作公司中企动力推荐网站管理登录
  • 网站排名不可有利就前用户体验设计的概念
  • 网站如何做二级域名建设英文商城网站