Scrapy项目实战
作者:互联网
抓取豆瓣电影top250数据,并将数据保存为csv,json格式存储到MongoDB数据库中,目标URL为https://movie.douban.com/top250
一、创建项目
进入自定义的项目目录中,运行scrapy startproject douban
douban为项目名称,将会创建一个douban文件夹,包含以下文件。
分别是
scrapy.cfg: 项目的配置文件。
douban/: 项目的Python模块,将会从这里引用代码。
douban/items.py: 项目的目标文件。
douban/pipelines.py: 项目的管道文件。
douban/settings.py: 项目的设置文件。
douban/spiders/: 存储爬虫代码目录。
打开豆瓣项目,进入到spiders文件夹下,运行scrapy genspider douban_spider movie.douban.com,就会在spiders文件夹下生成douban_spider.py
二、明确目标
三、spider文件的编写
运行豆瓣项目:scrapy crawl douban_spider
运行过程中报错 : no module named ‘_sqlite3’
安装好sqlite3后,重新编译安装python3
make && make install 重新编译python3完成。
进入豆瓣项目,重新运行scrapy crawl douban_spider,有如下报错:
这种报错是由于USER_AGENT不是规范的格式引起的,修改成规范的即可。
在pycharm输出所需内容,先在douban文件夹下创建一个main.py,如图:
编写解析文件,主要使用xpath。在Chrome浏览器安装并启用xpath helper,方便解析。在Chrome浏览器使用shift+Ctrl+X启用xpath插件。
四、数据的存储
导出数据:scrapy crawl douban_spider -o test.json 或者 scrapy crawl douban_spider -o test.csv 数据以Unicode格式保存。将它导出到Windows下:sz test.csv 打开是乱码,右键该文件,选择edit with notepad++打开,选择编码,选择“使用UTF-8-BOM编码”保存。用Excel表格打开可正常浏览。
如何将数据保存到MongoDB中?
在setting.py中定义对应IP地址、端口号、数据库名称、数据表名称。
在编写pipspiders.py,检查有没有安装pymongo。安装pip3 install pymongo。
通过数据库进行连接
标签:实战,douban,项目,py,spider,Scrapy,crawl,scrapy 来源: http://blog.51cto.com/13870710/2349004