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

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/009NotFound/p/10498465.html
Copyright © 2011-2022 走看看