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

专业网站制作公司四川扁平化设计网站欣赏

专业网站制作公司四川,扁平化设计网站欣赏,做h游戏视频网站,微信商户平台Python#xff1a;Spider爬虫工程化入门到进阶系列: Python#xff1a;Spider爬虫工程化入门到进阶#xff08;1#xff09;创建Scrapy爬虫项目Python#xff1a;Spider爬虫工程化入门到进阶#xff08;2#xff09;使用Spider Admin Pro管理scrapy爬虫项目 目录 1、使…PythonSpider爬虫工程化入门到进阶系列: PythonSpider爬虫工程化入门到进阶1创建Scrapy爬虫项目PythonSpider爬虫工程化入门到进阶2使用Spider Admin Pro管理scrapy爬虫项目 目录 1、使用scrapyd运行爬虫2、部署Scrapy爬虫项目2.1、修改配置文件2.2、部署项目 3、使用Spider Admin Pro定时执行爬虫3.1、安装Spider Admin Pro3.2、添加定时任务3.3、查看调度日志 4、收集爬虫数据4.1、返回Item对象4.2、收集Item数据 5、总结 本文需要用到上文提到的scrapy-project 目录文件需要提前创建 PythonSpider爬虫工程化入门到进阶1创建Scrapy爬虫项目 本文涉及3个文件目录可以提前创建好 $ tree -L 1 . ├── scrapy-project ├── scrapyd-project └── spider-admin-project1、使用scrapyd运行爬虫 scrapyd可以管理scrapy爬虫项目 安装环境准备 # 创建目录并进入 $ mkdir scrapyd-project cd scrapyd-project# 创建虚拟环境并激活 $ python3 -m venv venv source venv/bin/activate安装scrapyd # 安装 scrapyd $ pip install scrapyd$ scrapyd --version Scrapyd 1.4.2启动scrapyd服务 $ scrapyd浏览器访问http://127.0.0.1:6800/ 2、部署Scrapy爬虫项目 2.1、修改配置文件 回到爬虫项目目录scrapy-project修改配置文件 scrapy.cfg 将 deploy.url的注释去掉6800 端口就是上面我们启动的scrapyd 端口 # Automatically created by: scrapy startproject # # For more information about the [deploy] section see: # https://scrapyd.readthedocs.io/en/latest/deploy.html[settings] default web_spiders.settings[deploy] # url http://localhost:6800/ url http://localhost:6800/ project web_spiders 2.2、部署项目 安装 scrapyd-client pip install scrapyd-client部署项目 $ scrapyd-deployPacking version 1691131715 Deploying to project web_spiders in http://localhost:6800/addversion.json Server response (200): {node_name: bogon, status: ok, project: web_spiders, version: 1691131715, spiders: 1} 看到返回status: ok 就是部署成功 3、使用Spider Admin Pro定时执行爬虫 Spider Admin Pro项目利用了scrapyd提供的api接口实现了一个可视化的爬虫管理平台便于我们管理和调度爬虫 3.1、安装Spider Admin Pro 此时我们需要再新建一个目录spider-admin-project # 创建目录并进入 $ mkdir spider-admin-project cd spider-admin-project# 创建虚拟环境并激活 $ python3 -m venv venv source venv/bin/activate安装 spider-admin-pro pip3 install spider-admin-pro启动 spider-admin-pro gunicorn spider_admin_pro.main:app浏览器访问http://127.0.0.1:8000/ 默认的 账号 admin密码 123456 3.2、添加定时任务 我们点击左边tab栏定时任务, 添加一个任务 我们的项目只有一个爬虫默认会选中我们的爬虫名字 cron表达式表示的是每分钟执行一次 全部都是默认的我们只需要点击确定 即可因为现在还没有运行所以日志都是空的我们需要等待一会 3.3、查看调度日志 点击左侧tab栏调度日志过一会就能看到爬虫项目被执行了可以在这里查看调度日志 需要注意的是我们代码中使用 print 打印的内容并不会出现在日志文件中 我们修改代码文件将print修改为self.logger.debug web_spiders/spiders/wallpaper.py import scrapy from scrapy.http import Responseclass WallpaperSpider(scrapy.Spider):name wallpaperallowed_domains [mouday.github.io]# 替换爬虫开始爬取的地址为我们需要的地址# start_urls [https://mouday.github.io]start_urls [https://mouday.github.io/wallpaper-database/2023/08/03.json]# 将类型标注加上便于我们在IDE中快速编写代码# def parse(self, response):def parse(self, response: Response, **kwargs):# 我们什么也不做仅打印爬取的文本# 使用 print 打印的内容并不会出现在日志文件中# print(response.text)self.logger.debug(response.text) 重新部署 $ scrapyd-deploy等待刚刚部署的爬虫运行结束就可以看到日志了 4、收集爬虫数据 4.1、返回Item对象 我们的目标网站返回的数据结构如下 {date:2023-08-03,headline:绿松石般的泉水,title:泽伦西自然保护区斯洛文尼亚,description:泽伦西温泉位于意大利、奥地利和斯洛文尼亚三国的交界处多个泉眼汇集形成了这个清澈的海蓝色湖泊。在这里游客们可以尽情欣赏大自然色彩瑰丽的调色盘。,image_url:https://cn.bing.com/th?idOHR.ZelenciSprings_ZH-CN8022746409_1920x1080.webp,main_text:泽伦西自然保护区毗邻意大利和奥地利边境距离斯洛文尼亚的克拉尼斯卡戈拉不到5公里。 } 所以根据对应字段建立如下的Item对象 web_spiders/items.py # Define here the models for your scraped items # # See documentation in: # https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass WebSpidersItem(scrapy.Item):# define the fields for your item here like:date scrapy.Field()headline scrapy.Field()title scrapy.Field()description scrapy.Field()image_url scrapy.Field()main_text scrapy.Field() 同时修改爬虫文件将数据包装到Item的子类 WebSpidersItem 对象上并返回 web_spiders/spiders/wallpaper.py import jsonimport scrapy from scrapy.http import Responsefrom web_spiders.items import WebSpidersItemclass WallpaperSpider(scrapy.Spider):name wallpaperallowed_domains [mouday.github.io]# 替换爬虫开始爬取的地址为我们需要的地址# start_urls [https://mouday.github.io]start_urls [https://mouday.github.io/wallpaper-database/2023/08/03.json]# 将类型标注加上便于我们在IDE中快速编写代码# def parse(self, response):def parse(self, response: Response, **kwargs):# 我们什么也不做仅打印爬取的文本# 使用 print 打印的内容并不会出现在日志文件中# print(response.text)self.logger.debug(response.text)# 使用json反序列化字符串为dict对象data json.loads(response.text)# 收集我们需要的数据item WebSpidersItem()item[date] data[date]item[headline] data[headline]item[title] data[title]item[description] data[description]item[image_url] data[image_url]item[main_text] data[main_text]return item 重新部署 $ scrapyd-deploy可以看到除了打印的日志外还多打印了一份数据这就是我们刚返回的Item对象 4.2、收集Item数据 我们可以看到运行状态一列都是unknown,我们需要知道爬虫的运行状态是成功还是失败 scrapy-util 可以帮助我们收集到程序运行的统计数据 返回项目scrapy-project 安装scrapy-util pip install scrapy-util修改配置文件 web_spiders/settings.py 将以下配置添加到配置文件中端口号改为 spider-admin-pro 的实际端口号这里是8000 # 设置收集运行日志的路径,会以post方式向 spider-admin-pro 提交json数据 # 注意此处配置仅为示例请设置为 spider-admin-pro 的真实路径 # 假设我们的 spider-admin-pro 运行在http://127.0.0.1:8000 STATS_COLLECTION_URL http://127.0.0.1:8000/api/statsCollection/addItem# 启用数据收集扩展 EXTENSIONS {# # 可选如果收集到的时间是utc时间可以使用本地时间扩展收集scrapy.extensions.corestats.CoreStats: None,scrapy_util.extensions.LocaltimeCoreStats: 0,# # 可选打印程序运行时长scrapy_util.extensions.ShowDurationExtension: 100,# 启用数据收集扩展scrapy_util.extensions.StatsCollectorExtension: 100 }重新部署 $ scrapyd-deploy我们看到scrapyd的控制台输出了如下信息 ModuleNotFoundError: No module named scrapy_util说明有问题因为我们没有给scrapyd的运行环境安装依赖scrapy-util 停掉scrapyd安装scrapy-util pip install scrapy-util安装完毕后重新启动 scrapyd 让爬虫执行一会我们就可以看到调度日志列表多了一些信息可以看到 运行状态finished而不是unknownitem数量是1我们返回了1个item对象error错误时空的说明程序没有报错持续时间是1秒运行时间很短很快就结束了 5、总结 本文用到了很多的第三方模块将这些模块整合进我们的项目能极大提高工作效率 第三方库说明文档资料scrapy创建工程化的爬虫项目githubscrapyd运行scrapy爬虫github、docsscrapyd-client部署scrapy爬虫githubspider-admin-pro调度scrapy爬虫githubscrapy-util收集爬虫运行结果githubgunicorn执行spider-admin-pro应用docs
http://www.hkea.cn/news/14585644/

相关文章:

  • 北京网站制作平台seo和点击付费的区别
  • 找网站公司做网站的陷阱企业网站建设费
  • 天水网站建设公司广告策划书模板word
  • 云建站不能用了吗html5的篮球网站开发
  • 城阳建网站vi设计作品图
  • 长春市快速建站网站网站建设大赛海报
  • 怎样清除单位域名 网站或互联网网址分销平台搭建
  • 怎么维护网站教程域名访问升级紧急中拿笔记好
  • php网站好处seo短视频网页入口引流网站
  • 建设企业网站服务wordpress 调节显示文章位置
  • 怎么建设自己的一个服务器网站站群系统软件
  • 手机电脑网站 建站程序长春建设网站
  • 建设通是什么网站常州做的网站的公司
  • 移动网站建站视频jsp页面模板
  • 微信引流神器手机电影网站怎么做中世纪变装小说wordpress
  • 网站推广平台分发平台
  • 网站推广有哪些优势wordpress 媒体库图片不显示
  • 找外国女朋友的网站建设做网站需要雇什么人
  • 会员网站免费建设如今做哪个网站能致富
  • 烟台网站制作这珠宝商城网站模板
  • 网站公司怎么做运营商金螳螂装饰公司
  • 给网站做接口西宁哪家网络公司做网站好
  • 唯美网站模板手机网站前
  • 那个相亲网站做的比较好百度搜索引擎优化公司哪家强
  • 甘肃住房和城乡建设厅网站wordpress微信分享带缩略图
  • 做微网站必须要有公众号吗网站302错误
  • 网站图标在哪里修改做网站树立品牌形象
  • 漳州本地企业网站建设服务陕西旅游必去十大景点
  • 网站魔板大全洛阳有建社网站的吗
  • 律师事务所网站 备案湖北建设信息网站 联系方式