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文件的命令

  • 相关阅读:
    响应式图片菜单式轮播,兼容手机,平板,PC
    javascript学习笔记一
    meta标签
    几个基本的DOS命令
    github无法正常访问的解决方法
    CSS 基础(一)
    XHTML 简介
    HTML 基础(六)
    HTML 基础(五)
    Matlab 编程简介与实例
  • 原文地址:https://www.cnblogs.com/009NotFound/p/10498465.html
Copyright © 2011-2022 走看看