我的当当图书爬虫
一、项目简介
我使用了scrapy异步框架来爬取当当网的数据,客户输入关键词,如:python,然后开始爬取关键词相关的图书数据,我简单进行了增量爬取的处理,数据爬下来后我使用了matplotlib实现数据可视化,画了几个相关统计数据的图表,如低价图书推荐、出版社排行榜、新书推荐等,最后生成word报告就完成了自己的爬虫。
二、爬取数据(scrapy框架)
之前课上老师讲过用requests来爬取网页,但是感觉效率不是很高,就在网上搜索到scrapy框架,实现了异步爬取,大大提高了效率。
scrapy框架的简单介绍
scrapy 底层是异步框架 twisted ,并发是最大优势。scrapy 是异步的, 吞吐量很高. requests 爬完一个再爬一个, 一分钟爬不了几个页面. 当然你也可以自己用异步的方式去使用 requests, 那就是自己写了一个类似 scrapy 的东西了, 代码量和简单的使用 requests 就不是一个量级了.另外scrapy也实现了简单去重,已经爬取过的网页就不会再爬取。
scrapy是一个框架,能有效减少代码量,流程如下:
1. 首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用start_requests()方法。该方法默认从start_urls中的Url中生成请求,并执行解析来调用回调函数。
2. 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,然后被Scrapy下载,然后有指定的回调处理。
3. 在回调函数中,你解析网站的内容,我使用的是Xpath选择器(但是你也可以使用BeautifuSoup, lxml或其他任何你喜欢的程序),并生成解析的数据项。
4. 最后,从蜘蛛返回的项目通常会进驻到项目管道。在项目管道中实现你自己的数据处理功能。
scrapy框架的安装
我的电脑安装scrapy有点麻烦,需