七、Scrapy框架-案例1
1. 豆瓣民谣Top排名爬取
1.1 构建scrapy项目
安装Scrapy库
pip install scrapy
创建Scrapy项目
通过cmd进入命令窗口,执行命令scrapy startproject xxxx (xxxx为scrapy项目名),创建scrapy项目。
scrapy startproject douban_spider2024

创建爬虫项目
执行scrapy genspider xxx(爬虫名称) xxx(网址)创建爬虫项目。
scrapy genspider douban www.bouban.com


1.2 虚拟环境构建
使用Pycharm打开创建好的douban_spider2024文件夹,进入项目。

构建虚拟环境(venv)

利用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中。



七、Scrapy框架-案例1的更多相关文章
- 爬虫——Scrapy框架案例二:阳光问政平台
阳光热线问政平台 URL地址:http://wz.sun0769.com/index.php/question/questionType?type=4&page= 爬取字段:帖子的编号.投诉类 ...
- 爬虫——Scrapy框架案例一:手机APP抓包
以爬取斗鱼直播上的信息为例: URL地址:http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0 爬取字段:房间ID. ...
- Scrapy框架——CrawlSpider类爬虫案例
Scrapy--CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 此案例采用的是CrawlSpider类实现爬虫. 它是Spider的派生类,Spide ...
- python爬虫入门(七)Scrapy框架之Spider类
Spider类 Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作 ...
- 爬虫(十四):Scrapy框架(一) 初识Scrapy、第一个案例
1. Scrapy框架 Scrapy功能非常强大,爬取效率高,相关扩展组件多,可配置和可扩展程度非常高,它几乎可以应对所有反爬网站,是目前Python中使用最广泛的爬虫框架. 1.1 Scrapy介绍 ...
- 09 Scrapy框架在爬虫中的使用
一.简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.它集成高性能异步下载,队列,分布式,解析,持久化等. Scrapy 是基于twisted框架开发而来,twisted是一个 ...
- 网络爬虫第五章之Scrapy框架
第一节:Scrapy框架架构 Scrapy框架介绍 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自 ...
- python爬虫scrapy框架
Scrapy 框架 关注公众号"轻松学编程"了解更多. 一.简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量 ...
- Python逆向爬虫之scrapy框架,非常详细
爬虫系列目录 目录 Python逆向爬虫之scrapy框架,非常详细 一.爬虫入门 1.1 定义需求 1.2 需求分析 1.2.1 下载某个页面上所有的图片 1.2.2 分页 1.2.3 进行下载图片 ...
- 安装scrapy框架的常见问题及其解决方法
下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...
随机推荐
- 【VMware VCF】VMware Cloud Foundation Part 05:部署 SDDC 管理域。
之前文章("VMware Cloud Foundation Part 03:准备 Excel 参数表."和"VMware Cloud Foundation Part 04 ...
- NIO操作文件读写
第一章 第一节,Buffuer 案例一 从buffur 读出数据, 创建了一个 FileInputStream 对象,并通过调用 getChannel() 方法获取了与之关联的 FileChanne ...
- Gradle的安装和创建java项目(idea)
安装 Gradle下载地址:http://services.gradle.org/distributions/ 下载后解压. 解压后的目录结结构如下: 新增环境变量 在path环境变量中添加以下内容: ...
- jmeter测试udp广播(jmeter发送udp)
jmeter测试udp广播(jmeter发送udp) jmeter测试udp广播(jmeter接收udp) 先下载安装第三方插件 下载链接:https://jmeter-plugins.org/ins ...
- 【SQL】 去掉最后一段,只保留前段
需求描述: 例如给出这样一个地址或者其他字符: 10.11.12.13 192.168.177.209101.102.103.104.105 ... 要求只保留前面的部分,去掉最后一部分 10.11. ...
- 【Mybatis】08 ResultMap、Association、分步查询、懒加载
ResultMap自定义结果集 可以把查询返回的结果集封装成复杂的JavaBean对象 原来的ResultType属性,只能把查询到的结果集转换为简单的JavaBean 什么是简单的JavaBean对 ...
- 【DataBase】MySQL 04 图形化用户界面管理工具
参考至视频:P16 - P18 https://www.bilibili.com/video/BV1xW411u7ax?p=82 SQL图形化界面管理工具 - SQLyog 随便找的一个下载地址[安装 ...
- 基于Unity开发的强化学习环境(游戏环境):ml-agents —— Unity ML-Agents
介绍: https://medium.com/nerd-for-tech/an-introduction-to-machine-learning-with-unity-ml-agents-af7193 ...
- 【转载】ubuntu22.04安装gcc-8失败
版权声明:本文为CSDN博主「Death_Note_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/Death ...
- gym.ActionWrapper使用时的注意点——step函数可以覆盖observation函数
本文说的这个gym.ActionWrapper继承类的问题和gym.ObservationWrapper继承类的问题性质是一样的,具体看: gym.ObservationWrapper使用时的注意点- ...