# mooc_scrapy **Repository Path**: yeoman92/mooc_scrapy ## Basic Information - **Project Name**: mooc_scrapy - **Description**: 慕课网scrapy入门学习 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-09-29 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mooc_scrapy #### 项目介绍 慕课网scrapy入门学习 抓取豆瓣电影top250数据,并将数据保存为csv,json,存储到mongo数据库中 #### 项目笔记 scrapy抓取4步骤: 1.新建项目 2.明确目标 3.制作爬虫 4.存储内容 #### 项目构建过程 0 项目初始化 0.1 pycharm使用码云(参考https://blog.csdn.net/themaple/article/details/79389908) 0.2 在码云中新建项目;在pycharm中clone项目到本地 0.3 在pycharm中对该项目进行Python解释器的添加 0.4 安装scrapy(可以在pycharm中,或者使用pip scrapy install) 0.5 在命令窗口shell/cmd中运行命令 scrapy startproject projectname 创建scrapy项目 0.6 在spiders目录下,运行scrapy genspider douban_spider movie.douban.com (后面的是域名),会生成douban.spider.py文件,来定义xpath、逻辑表达式等 1 开始项目 1.1 在items.py中定义爬取数据结构 1.2 在douban_spider.py中书写爬虫 1.3 在命令行中输入 scrapy crawl douban_spider 运行文件。会报错,user-agent,在settings中修改 1.4 在pycharm中设置启动文件 1.4.1 新建main.py 1.4.2 书写启动代码 1.5 在douban_spider.py中书写xpath 1.5.1 在谷歌浏览器中安装XPath Helper插件,使用该插件。或者 1.5.2 在谷歌浏览器中某dom元素中鼠标右键 copy xpath 1.5.3 对数据进行解析和预处理 1.5.4 对下页数据进行解析 1.6 保存数据 1.6.1 导出为本地json/csv文件 scrapy crawl douban_spider -o test.csv (可能为乱码,notepad++保存为 utf-8 bom编码) 1.6.2 数据保存到mongodb中 1.6.2.1 在settings文件中配置mongo数据库的信息 1.6.2.2 在settings文件中打开ITEM_PIPELINES 1.6.2.3 在pipelines文件中把settings文件中的数据导入进来 1.6.2.4 运行main.py 1.7 爬虫的伪装(中间件的编写) 1.7.1 设置代理ip 1.7.1.1 在middlewares.py中创建一个类my_proxy 1.7.1.2 把中间件设置到settings.py文件中(打开DOWNLOADER_MIDDLEWARES,并改写为my_proxy中间件) 1.7.1.3 运行main.py,如果在控制台打印出my_proxy中间件,就说明有效 1.7.2 设置user-agent 1.7.2.1 在middlewares.py中创建一个类my_useragent 1.7.2.2 把中间件设置到settings.py文件中(打开DOWNLOADER_MIDDLEWARES,并添加为my_useragent中间件) 1.7.2.3 运行main.py,如果在控制台打印出my_useragent中间件,就说明有效 1.8 注意事项 1.8.1 中间件定义完成要在settings文件中启用 1.8.2 爬虫文件名和爬虫名称不能相同,spiders目录内不能存在相同爬虫名称的项目文件 #### scrapy设置 spiders下的settings.py是设置文件 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)