Scrapy爬虫框架快速入门
安装scrapy
pip install scrapy -i https://pypi.douban.com/simple/
安装过程可能遇到的问题
- 版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted
- 运行时候:ModuleNotFoundError: No module named 'attrs'
pip install attrs --upgrade - 运行时候:Loading "scrapy.core.downloader.handlers.http.HTTPDownload Handler" for scheme "https"
pip install pywin32
创建项目
CMD进入需要创建项目的目录下,输入命令
scrapy startproject ×××

命令基本不需要死记硬背,正如下图所示,会告诉你接下来需要输入的命令

设置实体文件(建立要获取的字段)

这个文件内会写入后续需要爬取的字段,scrapy.Field()就是变量存储区域,通过“spiders”里的爬虫文件获取的内容都会存储在此处设置的区域里。
然后以实体文件作为中转站,将这些变量传输到其他文件中,例如,传输到管道文件中进行数据存储等处理。设置完实体文件,就可以在实战中应用刚才创建的变量了。
修改设置文件(设置Robots协议和User-Agent,激活管道文件)
运行爬取文件可能会遇到DEBUG:Forbidden by robots txt 说明百度的Robots协议禁止Scrapy框架直接爬取。
解决这个问题可以通过设置文件20行左右的位置把OBEY置为False

设置User-Agent同样在设置文件40行左右位置,添加一行User-Agent

要进行数据的爬后处理,即将数据写入数据库或文件等后续操作。所以先要激活管道
后面的数字只是排序的顺序,越小越靠前
如果管道文件有新增类名,就需要在这里添加

在文件夹“spiders”中编写爬虫逻辑(核心爬虫代码)

第10 行start_urls是一个列表存放需要爬取的url,如果需要爬取多个地址(例如存在ajex动态页面爬取),可以往这个start_urls列表中append多个地址
爬虫代码基本都在parse中
第13行实例化items,就是实例化需要提取的字段
后面几行都是基本的爬虫代码这里就解释了,需要说一下的是response.text才是网页源代码

注:除了常见的用正则表达式提取,还有一个库比较常见就是Beautifulsoup
设置管道文件(爬后处理)
爬取后需要存入文件或者下载文件
这里需要说一下,第15行和第24行去判断spider.name是为了在运行的时候进行区分。
当然写管道的时候,可以把所有处理方式写在一个类中,通过spider.name去进行区分,也可以像下图一样用不同的类去写。但如果是不同的类就需要到设置文件中把新增类添加到设置中去。
第26行urlretrieve()函数是用来下载图片

最后运行
最后在命令行输入
scrapy crawl ****
Scrapy爬虫框架快速入门的更多相关文章
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...
- Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】
(1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
- Scrapy爬虫框架中的两个流程
下面对比了Scrapy爬虫框架中的两个流程—— ① Scrapy框架的基本运作流程:② Spider或其子类的几个方法的执行流程. 这两个流程是互相联系的,可对比学习. 1 ● Scrapy框架的基本 ...
- Python爬虫教程-31-创建 Scrapy 爬虫框架项目
本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...
- Python-S9-Day126——Scrapy爬虫框架
01 今日内容概要 02 内容回顾和补充:scrapy 03 内容回顾和补充:网络和并发编程 04 Scrapy爬虫框架:pipeline做持久化(一) 05 Scrapy爬虫框架:pipeline做 ...
- 第十七节:Scrapy爬虫框架之item.py文件以及spider中使用item
Scrapy原理图: item位于原理图的最左边 item.py文件是报存爬取数据的容器,他使用的方法和字典很相似,但是相比字典item多了额外的保护机制,可以避免拼写错误或者定义错误. 1.创建it ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...
- Scrapy爬虫框架与常用命令
07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...
随机推荐
- 谷歌拼音输入法扩展API开发指南
为了帮助开发者在谷歌拼音输入法的基本输入功能基础上,开发和定义更丰富的扩展输入功能,谷歌拼音输入法提供了以Lua脚本编程语言为基础的输入法扩展API.利用输入法扩展API,开发者可以编写自定义的输入功 ...
- Python基础部分:10、数据类型的内置方法和字符编码
目录 一.数据类型内置方法 1.字典dict内置方法 1.1.类型转换 2.字典必须要掌握的方法 2.1.取值方式 2.2.修改内部数据值 2.3.删除数据 2.4.统计字典中键值对个数 2.5.字典 ...
- 通过jmeter,将数据库数据查询出来并打印
1. 连接数据库 1.1 添加jdbc驱动路径 1.2 JDBC Connection Configuration 1.3 JDBC Request 2. 查询数据库数据并打印 2.1 定义变量 ...
- springboot中使用mybatis_plus逆向工程
创建springboot项目,选择图片中所示依赖 mybatis-plus生成的依赖 <!-- mybatis_plus --> <dependency> <groupI ...
- PLC攻击(一):应用层攻击
转载请注明出处:信安科研人please subscribe my official wechat :信安科研人获取更多安全资讯 参考文献: A Stealth Program Injection ...
- C ++:树
C++:树 树的概念: 所谓"树"是输就结构的一种,树大概可以分为两大类: 有根树 和 无根树 有根树使有一个确定的根节点,反之为无根树 · 子节点:从树根开始,通过树边向下扩展的 ...
- vim快捷键及命令大全
定位光标: G 将光标定位到文本末尾行首 gg 将光标定位到文本启始位置 0 (这个是零)定位到光标所在行行首 $ 定位到光标所在行行尾 数字G 跳转到第n行 移动光标: h 向左移动 l 向右移动 ...
- day25 前端
https://www.dcloud.io/hbuilderx.html 下载HbuilderX,直接解压缩双击打开 html5 <!DOCTYPE html><!-- 文档类型,声 ...
- Kafka教程(二)API开发-生产者、消费者、topic
一.地址 1.实时更新的思维导图 https://www.mubucm.com/doc/4uqlpedefuj 2.图片 二.具体内容 5.producer生产者 demo 发送pro.s ...
- 【Java SE】Day03流程控制语句
一.流程控制(顺序结构) 二.选择结构 1.多分支中case的穿透性 2.switch的括号可以是 基本/引用类型(String.enum枚举) 三.循环结构 for循环结束后内存消失,效率高 四.扩 ...