内容概要:
最近自己学习了一些爬虫,学习之余,写了一个新浪微博的爬虫。大规模爬数据没有试过,但是爬取几十万应该没有什么问题。爬虫爬取的站点是新浪移动端站点。github地址为:https://github.com/yz21606948/sinaSpider
第一次写文章,难免有疏忽,大家共同交流,共同进步。也请喜欢的朋友,在github上打个star
内容分为三章,第一张介绍scrapy,第二张分析爬取网站,第三章分析代码。
Scrapy 介绍
scrapy 是一个为爬取网站数据,提取结构性数据而编写的应用框架。scrapy是一个非常强大且好用的爬虫框架,它不仅提供了一些开箱即用的基础组件,还提供强大的自定义功能。
安装Scrapy
最好使用conda安装。我试过手动安装,要安装很多的依赖库,会花费很长的时间。但是使用conda很快就能安装好了。conda是一个管理Python的神器。
程序目录介绍
scrapy startproject [yourproject] 命令将会创建一个scrapy项目。
scrapy.cfg 是项目的配置文件。
setting.py 用于设置请求的参数,使用代理,爬虫数据后文件保存等等。
/spider/sinaSpider.py 是爬虫的主要代码。
middlewares.py 是scrapy的请求/相应相关处理的中间键。主要是UserAgent的轮换,Cookies的轮换,代理的轮换等。
items.py 是需要提取的数据结构定义的文件
pipelines.py:是对items里面提取的数据做进一步处理,对mongdb的连接就在这里面。
下面是Scrapy官网提供的scrapy结构图,可以加深对scrapy的理解。
程序用到的其他库或软件
selenium: 一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。我们使用selenium主要是模拟用户的行为登录微博,拿到cookies
PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web标准:DOM操作,CSS选择器,JSON,Canavs等。
参考:
1、《Python网络数据采集》