windows scrapy(1)

scrapy:就是一个应用框架,抽取website的内容

               python应用框架

scrapy:环境需要安装 机器识别,爬虫,人脸识别都需要安装,dlid机器学习需要安装pip就可以安装


内置了类数据的选择和抽取的方法:选择有两种方法:css ,xpath,可以使用正则

shell 交互方式,可以不写类,启动python交互控制台命令,用css.xpath调试和测验蜘蛛

内置了多种数据的导出方案:支持(csv、json、xml) 等 和多种后台存储方式(ftp,s3,本地文件存储local system)

支持自动解码,有一个非常强大,编码支持,自动检测发觉,所以不会乱码

很强大的扩展能力(api,允许自己定义,如中间件,管道,扩展)

内置的中间件(cookie,session,压缩,认证,缓存,伪装代理,机器人规则,定义爬取深度)

运程控制台(能够在远程机子上运行和调试爬虫,和本地调试一个道理)

加入了非常好的内内置的一些通用蜘蛛(spider, 如爬图片,直接调用就可以xml,css格式的,多媒体图片)

jsoup :是一个java的爬虫框架

下边以官网的实例来理解简单的爬虫,因为我安装的爬虫框架是1.5.0的所以打开的是1.5.0的官方文档:



了解蜘蛛:名称,爬的地址,解析回调方法,下边是一个简单的初实例先理解爬虫:

import scrapy#导入爬虫框架,并派生出爬虫类

#定义了一个类,继承了爬虫框架的一个类是spider(蜘蛛类)
class QuotesSpider(scrapy.Spider):
	#给蜘蛛起个名开了一个机型的开关
    name = "quotes"
    #爬取的起始页,只能爬匿名用户可浏览的页面,不能爬需要登录才可以浏览的页面
    #这是一个起始页,如果这个网页有个友情链接向外爬,可以设置域名,出了这个域名的不爬
    #以这个地址生成一个请求,发送到web服务,web响就回来需要下边定义的方法处理
    start_urls = [
        'http://quotes.toscrape.com/tag/humor/',
    ]
    #其中详细解析如下方法
    #定义一个方法,请求成功返回的结果作为这个方法唯一的参数,self对自身对像的引用
    #parse决定的爬虫的行为,怎么爬
    def parse(self, response):
    	#返回一个class是quote的所有div,quote就是一个div对象
        for quote in response.css('div.quote'):
        	#yield迭代所有的quote返回一个自己想要的json对象
            yield {
            #不想要所有div里中的把有内容
            #text 提取div中class是text中的文本extract提取第一个加first
            #如果没有first抽取出来的是一上列表需要用for循环遍历
            #在css 中调用属性和方法属性和方法前加::
                'text': quote.css('span.text::text').extract_first(),
                #author:上方是用css,下边这句用xpath,抽取div中的small 元素中的text
                #extract_first extract提取抽取
                'author': quote.xpath('span/small/text()').extract_first(),
            }

            #上边的网页爬取完了如果不想爬取后一页的内容就不用下next_page
            #next_page是得到的一个网址链接,要爬的下一页
            #next_page=提取出来当前页面中class=next 下的a 标签中属性是href的内容            
        next_page = response.css('li.next a::attr("href")').extract_first()
        #做一个判断,如果这个链接不是空,就执行下边的命令
        if next_page is not None:
        	#迭代生成一个跟随者(follow),就是往下爬, self.parse在继续执行上方的方法类似递归
            yield response.follow(next_page, self.parse)

首选创建一个目录test_spider,然后把上方的这段代码保存到test_spider中起个文件名:quotes_spider.py

保存完之后,cd test_spider, 查看这个目录下的文件(dir)里边只有一个文件

scrapy runspider quotes_spider.py -o quotes.json 执行这个命令,这只是单独运行爬虫文件,并不真正的运行爬虫项目

执行完之后就会自动生成quotes.json文件,打开就是爬的内容


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值