`
mushme
  • 浏览: 778415 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

scrapy抓取dmoz内容

 
阅读更多
1.新建一个项目
scrapy startproject dmozspider


会在当前目录创建一个dmozspider的文件夹,包含一系列文件
scrapy.cfg:项目的配置文件
tutorial/:项目的Python模块,将会从这里引用代码
tutorial/items.py:项目的items文件
tutorial/pipelines.py:项目的pipelines文件
tutorial/settings.py:项目的设置文件
tutorial/spiders/:存储爬虫的目录


2.修改tutorial目录下的items.py文件,在原本的class后面添加我们自己的class。
因为要抓dmoz.org网站的内容,所以我们可以将其命名为DmozItem:
代码如下
import scrapy


class TutorialItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

class DmozItem(scrapy.Item):  
    title = scrapy.Field()  
    link = scrapy.Field() 
    desc = scrapy.Field() 


3.制作爬虫
第一只爬虫,命名为dmoz_spider.py,保存在tutorial\spiders目录下
dmoz_spider.py代码如下:
from scrapy.spider import Spider  
from scrapy.selector import Selector   
from dmozspider.items import DmozItem 
  
class DmozSpider(Spider):  
    name = "dmoz"  
    allowed_domains = ["dmoz.org"]  
    start_urls = [  
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",  
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"  
    ]  
  
    def parse(self, response):  
        sel = Selector(response)  
        sites = sel.xpath('//div[@class="title-and-desc"]') 
        items=[]
        for site in sites:
            item=DmozItem()
            item['title']=site.xpath('a/div/text()').extract() 
            item['link']=site.xpath('a/@href').extract()  
            item['desc']=site.xpath('div/text()').extract() 
            title =item['title']
            link = item['link'] 
            desc = item['desc']
            items.append(item)
        return items


4.进入到dmozspider目录,运行
scrapy crawl dmoz


5.存储内容(Pipeline)
保存信息的最简单的方法是通过Feed exports,主要有四种:JSON,JSON lines,CSV,XML。
我们将结果用最常用的JSON导出,命令如下:
scrapy crawl dmoz -o items.json -t json  


参考网址:http://blog.csdn.net/pleasecallmewhy/article/details/19642329
http://doc.scrapy.org/en/latest/topics/selectors.html#topics-selectors
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics