当你学了一段时间爬虫后,就会知道各种功能太多而且麻烦。还不如自己整理个框架方便的多。因此,从开始写爬虫程序开始,就会慢慢的接触到一些有关爬虫的框架、效率提升而且扩
当你学了一段时间爬虫后,就会知道各种功能太多而且麻烦。还不如自己整理个框架方便的多。因此,从开始写爬虫程序开始,就会慢慢的接触到一些有关爬虫的框架、效率提升而且扩展也很方便。接下来我将会以Scrapy爬虫框架将我的学习过程记录下供大家参考指正。
一、安装
$ pip install scrapy二、创建爬虫工程
$ scrapy startproject wikiSpider三、爬虫工程目录结构
wikiSpider项目文件夹的目录结构如下所示:
scrapy.cfg- wikiSpider - __init__.py - items.py - pipelines.py - settings.py - spiders - __init__.py四、定义需要爬取数据字段
我们准备爬取页面的标题在items.py文件中,定义一个Article类,然后编写如下代码:
from scrapy import Item,Fieldclass Article(Item): title = Field()五、创建一个爬虫文件
为了创建一个爬虫,我们需要在wikiSpider/wikiSpider/spiders/文件夹里增加一个 articleSpider.py文件。
在新建的articleSpider.py文件里面,写如下代码:
from scrapy.selector import Selectorfrom scrapy import Spiderfrom wikiSpider.items import Articleclass ArticleSpider(Spider): name = 'article' allowd_domains = ["en.wikipedia.org"] start_urls = ['http://en.wikipedia.org/wiki/Main_Page','http://en.wikipedia.org/wiki/Python_%28programming_language%29'] def parse(self,response): item = Article() title = response.xpath('//h1/text()')[0].extract() print("Title is : "+title) item['title'] = title return item这个类的名称(ArticleSpider )与爬虫文件的名称(wikiSpider)是不同的, 这个类只是 在 wikiSpider 目录里的一员,仅仅用于维基词条页面的采集。
运行爬虫
你可以在wikiSpider主目录中用如下命令运行 ArticleSpider :
$ scrapy crawl article这行命令会用ArticleSpider类中的定义的name调用爬虫。这个爬虫先进入start_urls里面的两个页面,收集信息,然后停止。
Scrapy支持用不同的输出格 式来保存这些信息,比如CSV、JSON 或XML文件格式,对应命令如下所示:
$ scrapy crawl article -o articles.csv -t csv $ scrapy crawl article -o articles.json -t json $ scrapy crawl article -o articles.xml -t xml当然,你也可以自定义 Item 对象,把结果写入你需要的一个文件或数据库中,只要在爬虫的parse部分增加相应的代码即可。如果觉得内容还不错,分享给更多朋友,一起提升编程技能。