R语言 Nmap 分库查询 aircrack-ng performance webpack video parameters process matlab向上取整 vue最新版本 vue注册组件 hadoop源码 java通用版qq浏览器下载 java运行软件 spark大数据处理技术 oracle可视化工具 flutter优缺点 Navicat 安装python教程 python的open函数 python图形界面开发 java教学 java的继承 java数组删除 javastringbuilder linux入门 linuxtail命令 allowoverride 打马赛克的软件 微信摇骰子表情包 3d软件下载 网络电子书 相册制作软件 逆战丛林魅影 贪吃蛇c语言代码 js字符串转数字 向日葵9 ps取色 gho文件浏览工具
当前位置: 首页 > 学习教程  > python

Scrapy编写第一个爬虫

2021/2/6 22:26:31 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

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

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所对应的内容文件被创建了:
在这里插入图片描述

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


本文链接: http://www.dtmao.cc/news_show_2000095.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?