安装scrapy

pip install scrapy -i https://pypi.douban.com/simple/

安装过程可能遇到的问题
  1. 版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted
  2. 运行时候:ModuleNotFoundError: No module named 'attrs'
    pip install attrs --upgrade
  3. 运行时候: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 **** 

最新文章

  1. Java数据库——处理大数据对象
  2. [moka同学笔记]bootstrap基础
  3. OBJECT ARX 获取标注样式信息
  4. BCP command usage in SQL Server
  5. J-link V8固件升级记
  6. python 内置函数和表达式
  7. error C2018: unknown character '0xa1'
  8. angularjs表单中enter键提交
  9. struts2修改文件上传的大小
  10. Python中range()和len()
  11. 蓝桥杯 跳蚱蜢 (bfs)
  12. nodejs server websocket
  13. leetcode 错误题解,反面教材 Gas Station
  14. linux添加磁盘空间
  15. 利用 PowerShell 分析SharePoint WebApplication 体系结构
  16. SharePoint利用HttpModule的Init方法实现全局初始化
  17. AOP编程的学习总结
  18. IntelliJ IDEA使用心得之非Maven项目篇
  19. datagrid在MVC中的运用06-固定连续列
  20. 搭建Hexo博客并部署到Github

热门文章

  1. 齐博x1标签实例:标签如何调用论坛内容
  2. Springboot 一行代码实现文件上传 20个平台!少写代码到极致
  3. SQL生成脚本
  4. 题解 CF1011B Planning The Expedition
  5. 【保姆教程】RuoYi-Radius搭建实现portal认证
  6. CB利用链及无依赖打Shiro
  7. 面试 个人摸底监测 考察JavaScript基础 (第三天)
  8. 20、求解从1到20000内的所有水仙花数:每位数字的n次方之和等于其本身,n是这个数的位数。
  9. 【OpenStack云平台】openstack命令行管理之环境变量设置
  10. 关于 Windows6.1-KB2999226-x64.msu 此更新不适用你的计算机解决办法