zoukankan      html  css  js  c++  java
  • Scrapy的使用

    建立好项目以后,在项目文件内scrapy会搭好框架,我们只需要按照框架设置.

    先定义Item    它是保存爬取到的数据的容器,其使用方法和python的字典类似,并且提供了额外保护机制来避免拼写错误导致的未定义字段错误.

    然后编写爬虫类spider,  spider是用户编写用于从网站上爬取数据的类.其包含了一个用于下载的初始URL,然后是如何跟进网页中的链接以及如何分析页面中的内容,还有提起生产ltem的方法.

    Selector是一个选择器,它有四个基本的方法:

    xpath():传入xpath表达式,返回该表达式所对应的所有节点的selector list列表,xpath是一门在网页中查找特定信息的语言,所有用XPath来筛选数据,比正则要容易些

    css() 传入CSS表达式,返回该表达式所对应的所有节点的selector list列表

    extract() 序列化该节点为unicode字符串并返回list

    re() 根据传入的正则表达式对数据进项提取,返回unicode字符串list列表

    import scrapy

    from douban.items import DmozItem

    class DmozSpider(scrapy.Spider):
    name='dmoz' #爬虫的名字
    allowed_domains=['dmoztoos.net'] #爬取的范围
    start_urls=[
    'http://www.dmoztools.net/Reference/Archives/Arts/Film/'
    ]

    def parse(self,response):
    #filename=response.url.split('/')[-2]
    #with open(filename,'wb') as f:
    #f.write(response.body)
    sel=scrapy.selector.Selector(response)
    sites=sel.xpath('//section/div/div/div/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[@class="site-descr "]/text()').extract()
    items.append(item)

    return items

    scrapy crawl dmoz -o items.json -t json 此命令是爬虫最后导出json文件的命令

  • 相关阅读:
    [转]iOS框架和服务
    [Tips]统计Xcode代码行数
    [转]10个迷惑新手的Cocoa,Objective-c开发难点和问题
    关于 MRC 开发中的一些细节
    关于HTTP状态码的说明
    关于 MRC下自动释放池 的嵌套使用的几个问题
    C语言综合运用-------------编写 < 通讯录 >
    FFT与游戏开发(二)
    FFT与游戏开发(一)
    FFT开坑
  • 原文地址:https://www.cnblogs.com/009NotFound/p/10498465.html
Copyright © 2011-2022 走看看