七、Scrapy框架-案例1

news/2024/9/21 12:22:38/文章来源:https://www.cnblogs.com/xiqi2018/p/18423834

1. 豆瓣民谣Top排名爬取

1.1 构建scrapy项目

  1. 安装Scrapy库

    pip install scrapy
    
  2. 创建Scrapy项目

    通过cmd进入命令窗口,执行命令scrapy startproject xxxx (xxxx为scrapy项目名),创建scrapy项目。

    scrapy startproject douban_spider2024
    

  3. 创建爬虫项目

    执行scrapy genspider xxx(爬虫名称) xxx(网址)创建爬虫项目。

    scrapy genspider douban www.bouban.com
    


1.2 虚拟环境构建

  1. 使用Pycharm打开创建好的douban_spider2024文件夹,进入项目。

  2. 构建虚拟环境(venv)

  3. 利用requirement.txt文件安装依赖库,也可以自己一个个pip安装。

    • 查看依赖库:pip freeze > requirements.txt

    • 安装依赖库:pip install -r requirements.txt

1.3 主程序编写

主程序(douban.py)用于编写解析页面的主要内容的代码。

  • 通过start_requests函数获取urls列表,并用Request封装(需要配合在settings.py中启用下载中间件)。

  • 通过parse函数进行网页解析。

1.4 items.py设置

  • 继承scrapy.Item的自定义类SongItem,导入到主程序douban.py中用于存储爬取的字段。

1.5 settings.py设置

用于控制Scrapy框架中各部件的参数,例如USER_AGENT、COOKIES、代理、中间件启停等。

  • 修改USER_AGENT,模拟浏览器登录。

  • 关闭Obey robots.txt rules,将True设置为False。

  • 设置下载延迟

  • 打开下载中间件(downloader_middlewares),实现拦截并修改Request的请求内容。

1.6 middlewares.py设置

  • cookies设置

    进入middlewares.py程序中设置,新增一个处理cookies的函数,执行cookies函数返回一个包含cookies的字典COOKIE_ITEM。

    在xxDownloaderMiddleware类中process_request函数配置COOKIES_ITEM。

  • scrapy 利用sock代理??

1.7 多层url解析

  • 利用回调函数解析多层url:在parse函数最后解析获取新的url,并提交新的Request,并传递item到回调函数parse_detail中解析。

  • 在items.py中添加新的item信息。

1.8 pipelines.py设置

  • 通过pipelines.py构建Excel存储管道,用于将爬取的数据存储到excel中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800932.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帝国cms备份的数据库文件夹

帝国CMS的数据库路径通常位于帝国CMS安装目录下的 data 目录中。以下是几种常见的查找方法: 查看 config.php 文件定位 config.php 文件:打开帝国CMS安装目录下的 e/config/config.php 文件(对于帝国CMS 7.0及以后的版本)。 对于帝国CMS 7.0之前的版本,打开 e/class/confi…

帝国cms所有数据库字段说明

帝国CMS(Empire CMS)是一款基于PHP和MySQL的开源内容管理系统,它提供了丰富的功能和灵活的扩展性,适用于构建多种类型的网站。下面是关于帝国CMS数据库字段的一些说明,这些信息主要集中在购物车数量限制、提交订单权限以及同一IP注册间隔限制等方面。购物车数量限制字段名…

帝国cms数据库在哪

帝国CMS(EmpireCMS,简称ECMS)的数据库文件和配置通常位于以下几个位置:数据库文件位置:帝国CMS的数据库通常是存放在MySQL数据库服务器中的,而不是以文件的形式存储在服务器上。不过,如果你指的是数据库备份文件,那么这些文件通常位于帝国CMS安装目录下的data目录中。例…

帝国cms更换域名后图片地址更换的方法

当帝国CMS更换域名后,图片地址也需要相应的更新,以确保图片能够正常显示。以下是更换域名后更新图片地址的一些方法: 1. 替换数据库中的图片路径 对于帝国CMS来说,图片路径通常存储在数据库中。因此,更换域名后,需要更新数据库中存储的图片路径。 方法:导出数据库:先备…

帝国cms模板怎么制作

制作帝国CMS的模板涉及到了解HTML、CSS、JavaScript以及帝国CMS自身的模板标签和语法。下面是一个简单的指南,帮助你开始制作帝国CMS的模板。 1. 准备工作了解基础:熟悉HTML、CSS和JavaScript的基础知识。 学习帝国CMS模板语法:掌握帝国CMS的模板标签和语法。2. 设计模板布局…

给 DSL 开个脑洞:无状态的状态机

阿里妹导读:什么是 DSL ?DSL 是一种工具,其核心价值在于提供了一种手段,可以更加清晰地就系统某部分的意图进行沟通。本文将通过实现一个状态机引擎来看清 DSL 的本质,介绍状态机的核心模型和 Fluent 接口,并解决状态机的性能问题。最近在一个项目中,因为涉及很多状态的…

帝国cms编辑 帝国cms编辑器不能粘贴复制文字

当帝国CMS的编辑器不能粘贴复制文字时,可能是因为编辑器的某些设置或浏览器的限制导致的。以下是一些可能的解决方案: 1. 检查编辑器设置 确保编辑器的设置允许粘贴和复制。 解决方法:查看编辑器选项:在帝国CMS的后台,检查编辑器的设置,确保允许粘贴和复制操作。 使用粘贴…

FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

​EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议,其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。不过EasyPusher有好几年没更新了,尤其安卓版…

帝国cms 您的用户名、密码或安全答案有误,也可能您的帐号已被禁用,请重输

当你忘记了帝国CMS 的后台密码时,可以通过直接修改数据库中的用户信息来重置密码。以下是重置密码的步骤: 步骤1:进入phpMyAdmin 首先,你需要登录到你的服务器,并通过phpMyAdmin或者其他的数据库管理工具访问你的数据库。 步骤2:找到phome_enewsuser数据表 在数据库管理工…

安装帝国cms时输入安装地址,出现404错误

当你在安装帝国CMS时输入安装地址却遇到404错误,这意味着服务器无法找到你所请求的安装脚本页面。这个问题可能是由多种因素引起的,以下是一些常见的解决方法: 1. 检查安装包是否完整 确保你下载的帝国CMS安装包是完整的,并且所有文件都已正确上传到服务器。 解决方法:重新…

帝国cms刷新首页空白怎么办

当帝国CMS刷新首页后出现空白的情况时,这可能是由多种原因造成的。以下是一些常见的解决方法: 1. 检查数据库连接 确保数据库连接正常。 解决方法:检查数据库配置:打开e/config/config.php文件,确认数据库连接信息(如主机名、用户名、密码、数据库名)正确。 测试数据库连…

manim边学边做--空心多边形

空心的多边形Cutout是一种比较特殊的多边形,主要用于解决与形状、大小、位置等相关的数学问题。 Cutout多边形可以定义物体表面的空洞或凹陷部分,从而更准确地模拟现实世界中的复杂形状。 比如,在PCB(印制电路板)设计中,通过放置Cutout空心的多边形,设计师可以精确地控制…