参考:Scrapy框架实战(一):Scrapy基础知识_Amo Xiang的博客-CSDN博客_scrapy框架
1. 主要流程
1. 创建项目
scrapy project xxx
2. 制作spider
scrapy genspider xxx "http://www.xxx.com"
3. 编写Item.py
明确需要提取的数据。
4. 编写爬虫文件
spiders/xxx.py,处理请求和响应,以及提取数据(yield item)。
5. 编写管道文件
pipelines.py,处理spider返回的item数据,比如本地持久化存储等。
6. 编写settings.py
启动管道组件 ITEM_PIPELINES={},以及其他相关设置。
7. 执行爬虫
scarpy crawl xxx
8. 整体框架
2. 组件简介
2.1 Scrapy Engine
引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。
2.2 Scheduler
从引擎接收request并将它们入队列,以便之后引擎请求它们时提供给引擎。
2.3 Downloader
负责获取页面数据并提供给引擎,而后提供给spider。
2.4 Spider
用户编写的用于分析response并提取item或额外跟进的URL的类,每个spider负责处理一个特定(或一些)网站。
2.5 Item pipeline
负责处理被spider提取出来的item,典型的处理有清理、验证及持久化(数据库存储)。
2.6 Downloader middlewares
是在引擎与下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。其提供了一个简便机制,通过插入自定义代码来扩展scrapy功能。
3. google play 信息获取
用 google_play_scrapper来提取google_play_store中应用的信息及评论等;
os.system('pip3 install -U google-play-scraper')
from google_play_scraper import app
if __name__ == '__main__':
pkg_name = 'com.google.android.play.games'
pkg_info_dict = app(pkg_name, lang='en', country='ng')
if pkg_info_dict.get('title'):
print(pkg_info_dict)
else:
print('ERROR: get app info failed!')
可以获取app描述、安装次数、评分、排名、评论等相关信息。