您现在的位置是:首页 > 正文

CrawlSpider爬虫实战-猎云网爬虫(过程超详细)

2024-02-01 00:08:51阅读 2

预备知识:在阅读本教程之前,需要对Scrapy框架有一定的了解,知晓Scrapy框架中每一个项目文件的作用。
推荐在阅读本文之前,先阅读以下这篇教程——轻松带你掌握Scrapy框架(以爬取古诗文网为例)https://blog.csdn.net/liumengqi11/article/details/112654295

CrawlSpider爬虫

  1. 作用:可以定义规则,让Scrapy自动的去爬取我们想要的链接。而不必跟Spider类一样,手动的yield Request。
  2. 创建:scrapy genspider -t crawl [爬虫名] [域名]
  3. 提取的两个类:
    • LinkExtrator:用来定义需要爬取的url规则。
    • Rule:用来定义这个url爬取后的处理方式,比如是否需要跟进,是否需要执行回调函数等。

猎云网爬虫

1.需求:实现猎云网网站的文章数据爬虫。需要保存标题、发布时间、内容、原始url字段,然后异步保存到mysql数据库中。

2.翻页链接:https://www.lieyunwang.com/latest/p1.html

3.翻页规则:Rule(LinkExtractor(allow=r’/latest/p\d+.html’), follow=True)

4.文章详情页规则:Rule(LinkExtractor(allow=r’/archives/\d+’), callback=“parse_detail”, follow=False)

5.使用twisted. enterprise.adbapi来异步的保存数据。

爬取过程

猎云网界面如下:
在这里插入图片描述详情页面如下:
在这里插入图片描述爬取过程:
1、新建文件搭建scrapy框架(以CrawlSpider的方式)
在命令提示符中输入以下三条命令:
scrapy startproject lyw
cd lyw
scrapy genspider -t crawl lyw_spider lieyunwang.com
2、在pycharm中打开文件,在item.py中定义要爬取的字段,并在setting.py中把机器人协议设置为False,并设置user-agent,解开ITEM_PIPELINES的注释
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3、在文件夹下建立run.py文件,这样运行run.py文件就相当于运行整个文件了。run.py的代码如下:

from scrapy import cmdline
cmdline.execute("scrapy crawl lyw_spider".split(" "))

4、在lwy_spider.py中修改起始url,定义提取url的规则,代码如下:

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from ..items import LywItem

class LywSpiderSpider(CrawlSpider):
    name = 'lyw_spider'
    allowed_domains = ['lieyunwang.com']
    start_urls = ['https://www.lieyunwang

网站文章

  • swarm系列-swarm可视化之visualizer(4)

    swarm系列-swarm可视化之visualizer(4)

    visualizer是官方的简单容器状态可视化工具安装docker run -it -d -p 5000:8080 \ -v /var/run/docker.sock:/var/run/docker.sock \ dockersamples/visualizer访问ip:5000访问页面查看 ...

    2024-02-01 00:08:44
  • 数据集ISCX(12年到17年)已经打包,可下载

    数据集ISCX(12年到17年)已经打包,可下载

    感兴趣的可私聊下载。

    2024-02-01 00:08:15
  • 配置grails后,dos命令行出现如下错误

    配置grails后,dos命令行出现如下错误。我的java的环境变量设置也是正确的,平时运行java程序也没有出过问题,但是这里确提示我的JAVA_HOME是一个无效的目录,到网上看了一下,原来是JAVA_HOME所配置的名字不识别。C:\Users\JavaPlus>grails -versionERROR: JAVA_HOME is set to an invalid di

    2024-02-01 00:08:09
  • Redis

    什么是RedisRedis是一款内存高速缓存数据库,是Nosql数据库中使用较为广泛的非关系型内存数据库。Redis全称为:Remote Dictionary Server (远程数据服务),使用C语...

    2024-02-01 00:08:01
  • 对象的循环

    1.最基本: for(var i = 0,arr=['Z','S','T','Y'];i<arr.length;i++){ con...

    2024-02-01 00:07:33
  • springboot 任务定时Schedule

    SpringBoot 中使用 Schedule 定时任务非常简单,首先我们创建一个 SpringBoot 项目, 费话少说,上代码 首先写一下简单类,,在类上添加 @Scheduled 注解即可,如下...

    2024-02-01 00:07:27
  • 火速围观!Qtum量子链全球首席开发工程师Jordan Earls受邀出席2019纽约区块链周...

    2019年纽约区块链周,吸引了加密货币和区块链世界的主要公司、开发者、创业者和投资者参与,每一年都备受瞩目。今年Qtum量子链联合创始人、全球首席开发工程师Jordan Earls受邀将参与2019年...

    2024-02-01 00:07:21
  • 计算机科学第三讲——布尔逻辑和逻辑门

    计算机科学第三讲——布尔逻辑和逻辑门

    目录 1、二进制 2、布尔逻辑 3、NOT 4、AND 5、OR 6、XOR 今天我们开始讲"抽象",不用管底层细节,把精力用来构建更复杂的系统。 1、二进制 上一讲,我们讲了计算...

    2024-02-01 00:06:54
  • 熊逸《唐诗50讲》田园篇 - 学习笔记与感想

    熊逸《唐诗50讲》田园篇 - 学习笔记与感想

    此篇已加入熊逸《唐诗50讲》学习笔记索引目录。 一、田园篇具体内容   田园牧歌对于在现代社会里打拼的人们来说,距离一万光年,但是身心俱疲的时候,读两首田园诗却是最好的治愈,因为诗里岁月柔软、风物...

    2024-02-01 00:06:47
  • WEB架构设计过程

    WEB架构设计过程

    WEB架构设计过程

    2024-02-01 00:06:40