Scrapy编写第一个爬虫

Scrapy编写第一个爬虫

Scrapy编写第一个爬虫Spider用于编写从单个网站(或者多个网站)爬取数据的类。其中包括了一个用于下载的初始URL,如何爬取网页中的其他链接以及如何分析网站页面的内容,封装到==item==容器中。

为了创建一个Spider,你必须继承scrapy.Spider类,且定义以下三个属性:

  • name:用于区别Spider(爬虫),该名字必须是唯一的(不然会发生出乎意料之中的红色报错),你不可以为不同的Spider设定相同的名字。
  • start_urls:包含了Spider在启动时进行爬取的URL列表。因此,第一个被获取到的页面就是其中之一,更多的URL则从初始的URL获取到的数据中提取。
  • parse是spider的一个方法,被调用时,每个初始URL完成下载后生成的Response,对象将会作为唯一的参数传递给该函数,该方法负责解析返回的数据(response data),提取数据生成(item)以及生成需要进一步处理的URLRequest对象。

创建第一个爬虫

  1. win+R快捷键调出运行。
  2. 输入cmd回车车。
  3. 再输入scrapy startproject tutorial
  4. 执行后出现。
    You can start your first spider with:
    cd tutorial
    scrapy genspider example example.com
    (说明你以及创建成功你的第一个爬虫了)

以下开始我们的第一个Spider代码,保存在tutorial / spiders目录下的dmoz_spider.py文件中。

class DmozSpider(scrapy.Spider):
    name = "geekdocs"
    allowed_domains = ["geek-docs.com"]
    start_urls = ["https://geek-docs.com/vulkan/vulkan-tutorial/vulkan-understand-instance.html"]

    def parse(self, response):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)

进入项目根目录,执行下列命令启动spider

  1. win+R快捷键调出运行。
  2. 输入cmd回车车。
  3. 再输入scrapy crawl geekdocs=
  4. scrapy crawl geekdocs启动用于爬取geek-docs.comspider,你将得到类似如下的输出。

在这里插入图片描述

最后更有趣的事情发生了,就像我们parse方法指定的那样,在tutorial目录下,有一个包含URL所对应的内容文件被创建了:
在这里插入图片描述

第一次发文章,如内容有错误的地方请大佬们多多指教。以后还得跟大家多学习学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值