1、首先需要安装如下软件Python 2.7
lxml
OpenSSL
pip or easy_install
2、安装必备软件sudo apt-get install libevent-dev
sudo apt-get install python-dev
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install python-setuptools
3、安装Scrapysudo apt-get install Scrapy
以爬取mininova中的EBOOK种子链接、名称、大小为例
1、进入存储代码的目录中,运行下列命令scrapy startproject mininova
该命令将会创建包含下列内容的mininova
目录
mininova/
scrapy.cfg
mininova/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
这些文件分别是:
scrapy.cfg
:项目的配置文件mininova/
:该项目的python模块。mininova/items.py
:项目中的item文件mininova/pipelines.py
:项目中pipelines文件mininova/settings.py
:项目的设置文件mininova/spiders/
:放置spider代码的目录2、定义Item
编辑mininova
目录中的items.py
文件:
import scrapy
class MininovaItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
size = scrapy.Field()
3、编写第一个爬虫(Spider)
为了创建一个Spider,必须继承scrapy.Spider
类,且定义一下三个属性:
name
:用于区别Spider。该名字必须是唯一的,不可以为不同的Spider设定相同的名字。start_urls
:包含了Spider在启动时进行爬取的url列表。因此,第一个被获取到的页面将是其中之一。后续的URL则从初始的URL获取到的数据中提取。parse()
:是spider的一个方法。被调用时,每个初始URL完成下载后生成的Response
对象将会作为唯一的参数传递给该函数。该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的Request
对象。以下为我们的第一个Spider代码,保存在mininova/spiders
目录下的mininova_spider.py
文件中:
import scrapy
from mininova.items import MininovaItem
class MininovaSpider(scrapy.Spider):
name = \'mininova\'
allowed_domains = [\'mininova.org\']
start_urls = [\'http://www.mininova.org/sub/50/name/1\']
def parse(self,response):
sites = response.xpath(\'//table[@class=\"maintable\"]//tr\')
for site in sites:
item = MininovaItem()
item[\'title\'] = site.xpath(\'td/a[not(@class=\"ti com\")]/text()\').extract()
for url in site.xpath(\'td/a[@class=\"dl\"]/@href\').extract():
item[\'link\'] = \'http://www.mininova.org\' + url
for size in site.xpath(\'td[3]/text()\').extract():
size = size.encode(\'utf-8\')
item[\'size\'] = size.replace(\'\\xc2\\xa0\',\'\')
yield item
4、爬取
进入项目的根目录,执行下列命令启动spider:scrapy crawl mininova
5、保存爬取到的数据scrapy crawl mininova -o items.json
下一篇将介绍分页爬取、存入数据库及一些设置。
下一篇:Django学习笔记