Scrapy入门学习初步总览

本文介绍了使用Scrapy框架搭建和运行爬虫的初步过程,包括新建Scrapy工程和项目、配置环境、创建spider、提取网页信息、编辑spider逻辑。通过一个豆瓣Top250书籍爬虫实例,详细讲解了如何使用xpath选择器、设置请求和响应处理,以及应对反爬策略的方法。
摘要由CSDN通过智能技术生成

OK,因为数据分析的缘故需要采集一些数据,所以学了一段时间的爬虫,但都是利用urllib,requests,Beautifulsoup采取一些小规模的数据,感觉并不顺手,所以从今天开始进入scrapy框架的学习。
事先申明环境配置

  • win10
  • python3.6
  • Pycharm2017.3专业版(网上找秘钥或是使用edu邮箱)

另附我的上一篇文章Windows下pip install scrapy 出错,含一些虚拟环境的创建,pycharm的使用安利

新建Scrapy工程和项目

  1. 进入命令行模式(使用Pychram下方的Terminal即可),cd到你项目文件下
  2. 通过scrapy startproject ProjectName(你的项目名)新建工程,得到如图所示文件结构(注:截图时较晚,main.py和jobbole.py是后期创建的,忽略就好)

这里写图片描述
3. 进入命令行模式(使用Pychram下方的Terminal即可),通过scrapy genspider name(爬虫文件名) 域名新建爬虫文件

注意,这里可以选择不同模板(默认为basic),通过scrapy genspider -t 模板名 name 域名
可选模板有:
这里写图片描述

这里我们通过爬取豆瓣读书来学习,所以如图所示


这里写图片描述
项目结构如下
这里写图片描述

OK,咱们来看看项目结构,如上图:

  • 核心是spider文件夹,这里是放你处理爬虫逻辑代码的地方
  • items.py是存放数据的容器,定义要获得的数据
  • pipelines.py管道文件(类似django的路由文件),对items中的数据进行处理
  • settings.py顾名思义,对项目的一些设置
  • main.py自定义的,下文会说到

双击打开doubanread.py,这是你写爬虫逻辑和代码的地方,可见:
这里写图片描述

如图它自动创建好了DoubanreadSpider类,其中需要注意几点:name用于爬虫项目启动;start_urls是列表可用来存放链接

OK,命令行启动豆瓣爬虫scrapy crawl doubanread(这里就是上面所提的name),不出意外,一定会报错缺少pywin32这个包。通过Pycharm安装即可,不会的话,看文章开头的链接

再次命令行启动,可以运行了。
这里再提一个开头说的main.py,在一个视频中学到的,用于在Pycharm中调试。在项目文件夹下新建一个main.py ,代码如下:

#新建main文件,用来设置断点调试程序
#在其他py文件上打上断点后,debug该main文件即可
from scrapy.cmdline import execute3#调用这个可以执行scrapy脚本
import  sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)))#找到工程目录才能运行scrapy命令,你可以打印一下看看
# print(os.path.dirname(os.path.abspath(__file__)))
execute(['scrapy','crawl','doubanread'])#这其实就是scrapy启动项目的命令拆分

在其他py文件上打上断点后,debug该main文件即可。


OK,学习一门语言不动手是不行的,先通过一个简单的爬虫(豆瓣TOP250爬取)来具体学习scrapy的使用。

我想豆瓣top250是大多数初学者都爬过的网页,毕竟他几乎没有反扒机制,而且页面结构简单,有利于信心增长,先来看一下该爬虫的流程图 。
parse是解析页面链接,detail_parse是解析书籍具体信息,‘获取评论’是获取每本书的热门短评(取前20页)。分析评论可知,短评更具代表性,且每本书都有上万条短评,但差不多15页左右短评点赞数就为0,且褒贬都有,这也表明前15页左右评论较其他评论更具代表性。

Created with Raphaël 2.1.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值