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

婚介 东莞网站建设红色页面网站

婚介 东莞网站建设,红色页面网站,wordpress ample,wordpress网站文章形式1.1 介绍部分#xff1a; 文字提到常用的Web框架有Django和Flask#xff0c;接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分#xff1a; Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…1.1 介绍部分 文字提到常用的Web框架有Django和Flask接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分 Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中间件的使用 Scrapy_redis概念作用和流程 Scrapy_redis原理分析并实现断点续爬以及分布式爬虫 Scrapy_splash组件的使用 Scrapy的日志信息与配置 Scrapyd部署Scrapy项目 1.2.1 原始爬虫工作流程 原始框架转换成矩形展示 1.2.2 scrapy框架模型 其流程可以描述如下 爬虫中起始的url构造成request对象–爬虫中间件–引擎–调度器 调度器把request–引擎–下载中间件–下载器 下载器发送请求获取response响应–下载中间件–引擎–爬虫中间件–爬虫 爬虫提取url地址组装成request对象–爬虫中间件–引擎–调度器重复步骤2 用人话描述 spiders模块会解析最初始的url,发送给engine引擎调度器,然后由调度器发送给Downloader下载器,下载器将响应返回给调度器,调度器把响应派发给Spiders,想用传递给Spider会被内部的parse解析 自定义的下载器代码 import scrapyclass ItcastSpider(scrapy.Spider):name itcastallowed_domains [itcast.cn]start_urls [https://itcast.cn]def parse(self, response):#定义对于网站的相关操作pass1.2.3 scrapy3个内置对象 request请求对象由url、method、post_data、header等构成 response响应对象由url、body、status、headers等构成 item数据对象本质是个字典 1.2.4 scrapy每个模块的作用 1.2.5 安装scrapy pip install scrapy 1.2.6 开发流程 创建项目 scrapy startproject mySpider 生成一个爬虫 scrapy genspider itcast itcast.cn 提取数据 根据网站结构在spider中实现数据采集相关内容 保存数据 使用pipeline进行数据后续处理和保存 1.2.7 创建项目 创建scrapy项目的命令 scrapy startproject 项目名字 示例 scrapy startproject myspider 生成的目录和文件结果如下 1.2.8 scrapy中各文件作用 spider文件夹一般爬虫都放置在该文件夹中。items.py负责处理被spider提取出来的item定义数据。pipelines.py通道文件 当我们的items被返回的时候会自动调用我们的pipelines类中process_item()需要加到settings.py里面middlewares.pyscrapy框架的扩展插件setting.pyscrapy爬虫的配置文件。 1.2.9 创建爬虫 通过命令创建出爬虫文件爬虫文件为主要的代码作业文件通常一个网站的爬取动作都会在爬虫文件中进行编写。 命令 在项目路径下执行 scrapy genspider 爬虫名字 允许爬取的域名 爬虫名字作为爬虫运行时的参数 允许爬取的域名为对于爬虫设置的爬取范围设置之后用于过滤要爬取的url如果爬取的url与允许的域不通则被过滤掉。 示例 cd myspider scrapy genspider itcast itcast.cn 1.2.10 启动爬虫 import scrapyclass ItcastSpider(scrapy.Spider):name itcast# 2.检查域名allowed_domains [itcast.cn]# 1.修改起始urlstart_urls [http://www.itcast.cn/channel/teacher.shtml#ajavaee]# 3. 在parse方法中实现爬取逻辑def parse(self, response):# 定义对于网站的相关操作# with open(itcast.html, wb) as f:# f.write(response.body)# 获取所有教师节点node_list response.xpath(//div[classli_txt])print(获取所有教师节点长度:,len(node_list))data_list []# 遍历教师节点列表for node in node_list:temp {}#xpath 方法返回的是选择器对象列表,extract()会获取不是空列表的第一个值temp[name] node.xpath(./h3/text()).extract()temp[title] node.xpath(./h4/text()).extract()temp[desc] node.xpath(./p/text()).extract()print(temp)yield temp# data_list.append(temp)# return data_list运行scrapy 命令在项目目录下执行scrapy crawl 示例scrapy crawl itcast scrapy crawl itcast --nolog 可以关闭日志,降低干扰 关于Scrapy爬虫的要点包括 Scrapy.Spider爬虫必须有名为parse的解析函数该函数是处理和提取数据的关键。可以自定义其他解析函数如果网站结构复杂可以通过自定义解析函数处理特定的页面或数据。解析函数中提取的URL地址如果要发送请求必须属于allowed_domains范围内这是一种安全措施确保爬虫只访问指定的域名范围。start_urls中的URL地址不受这个限制初始URL可以不在allowed_domains范围内但后续解析的URL必须符合规定。启动爬虫时注意启动的位置应该在项目路径下启动以确保正确加载项目配置和资源。parse()函数中使用yield返回数据yield可以返回BaseItem, Request, dict或None。 1.2.11 定位元素以及提取数据、属性值的方法 解析并获取Scrapy爬虫中的数据利用XPath规则对字符串进行定位和提取 response.xpath 方法的返回结果是一个类列表的类型 其中包含的是 selector 对象操作和列表一样但是有一些额外的方法额外方法 extract()返回一个包含字符串的列表额外方法 extract_first()返回列表中的第一个字符串列表为空时返回 None 1.2.12 response响应对象的常用属性 response.url: 当前响应的 URL 地址response.request.url: 当前响应对应的请求的 URL 地址response.headers: 响应头response.request.headers: 当前响应的请求头response.body: 响应体也就是 HTML 代码类型为 byteresponse.status: 响应状态码 1.2.13 保存数据 利用管道pipeline来处理(保存)数据 1.2.14 在pipelines.py文件中定义对数据的操作 定义一个管道类重写管道类的process_item方法process_item方法处理完item之后必须返回给引擎 import jsonclass ItcastPipeline():# 爬虫文件中把数据传输的方法每次yield一个item, 就会运行一次# 该方法为固定存储函数def process_item(self, item, spider):print(item)return item1.2.15 在 settings.py 配置启用管道 ITEM_PIPELINES {myspider.pipelines.ItcastPipeline: 400 }这个配置用于在 Scrapy 项目的 settings.py 文件中启用数据管道。通过将管道类 ItcastPipeline 添加到 ITEM_PIPELINES 字典中并设置一个优先级例如 400Scrapy 将会在处理每个 item 时调用该管道。 配置项中键为使用的管道类管道类使用.进行分割第一个为项目目录第二个为文件第三个为定义的管道类。 配置项中值为管道的使用顺序设置的数值越小越优先执行该值一般设置为1000以内。 1.2.16 pipelines.py更新数据操作,保存数据 # Define your item pipelines here # # Dont forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html import json# useful for handling different item types with a single interface from itemadapter import ItemAdapterclass MyspiderPipeline:def __init__(self):self.file open(itcast.json, w,encodingutf-8)def process_item(self, item, spider):# print(itcast:, item)# 默认使用完管道之后将需要的数据返回给引擎# 将字典数据序列化json_data json.dumps(item,ensure_asciiFalse),\n# 将数据写入文件self.file.write(json_data)return itemdef __del__(self):self.file.close()
http://www.dnsts.com.cn/news/74902.html

相关文章:

  • 网站占有率深圳vi设计公司联系
  • 网站建设需要掌握什么知识求几个夸克没封的a站2023
  • 设置 iis 网站维护中建设银行全球门户网站
  • 国外 家具 网站模板怎么推广自己的物流公司
  • 如何做旅游小视频网站wordpress 多个分类查找
  • 哪个全球购网站做的好处google建站
  • 中国建设银行网站荆门网点查询网站毕业设计任务书
  • 深圳网站设计师云主机与云电脑区别
  • 杭州营销型网站制作山东建设管理局网站
  • 廊坊网站建设费用安卓手机软件开发平台
  • 设置网站标签网页ui素材中心下载
  • 北京网站建设推荐华网天下网站域名收费
  • 东莞网站建设建网站漳州市网站建设费用
  • 临汾工程建设招标投标网站深圳景观设计公司排行
  • 一个com的网站多少钱深圳展览展示公司排行
  • 多多卡起货网站建设wordpress运行时间
  • 网站页面设计 8种常见的网站版面布局形式大丰做网站费用
  • 中企动力制作的网站后台jsp做的网站怎嘛用
  • 建设银行河北分行招聘网站手机端网站如何优化
  • 大地资源中文在线观看专业网站优化seo
  • 网站定制费用上海企业网站怎么建设
  • 临汾哪里有做网站的怎么免费做自己的网站
  • 集团公司网站开发方案哪个网站网站空间最好
  • 商务网站规划与设计实训心得广告公司名字大全创意
  • 公司宣传片制作公司廊坊首页霸屏优化
  • 电子商务网站建设与管理 笔记上海知名网站开发公司
  • 网站网址有哪些做商演任务的网站
  • 做自媒体小视频哪个网站比较赚钱学视频剪辑去哪里学比较好
  • 网站pc和手机端网页版微信登录提示二维码已失效
  • 做投资的网站凡客的网站功能