VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】

VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】

本教程将介绍如何在VirtualBox虚拟机上安装CentOS 7.7.1908系统,以及如何安装Python3.8和Scrapy框架来搭建开发环境。

步骤一:安装VirtualBox

首先下载并安装VirtualBox软件,可以从官方网站(https://www.virtualbox.org/wiki/Downloads)下载适合自己操作系统的版本。

步骤二:下载CentOS 7.7.1908 ISO

从CentOS官网(https://www.centos.org/download/)下载最新版本的CentOS 7.7.1908 ISO镜像文件。

步骤三:创建虚拟机

打开VirtualBox软件,点击“新建”创建一个新的虚拟机,设置虚拟机的名称、类型、版本以及内存大小等选项,然后在硬盘选项中选择“创建虚拟硬盘”并设置容量大小。

接着进入虚拟机设置页面,选择“存储”,点击“添加光驱”并选择刚刚下载的CentOS 7.7.1908 ISO镜像文件,然后点击“启动”进入虚拟机。

步骤四:安装CentOS 7.7.1908系统

在虚拟机启动后,会出现CentOS安装界面,按照提示进行安装,可以选择“基本服务器”或“GNOME桌面”等安装选项。

安装完成后,重启虚拟机,并用root账号登录系统。

步骤五:安装Python3.8

在CentOS系统中安装Python3.8之前需要安装一些开发工具,如gcc、make、openssl-devel等,可以使用以下命令进行安装。

sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel

接着下载并安装Python3.8,可以通过以下命令进行安装。

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -zxvf Python-3.8.0.tgz
cd Python-3.8.0
./configure --prefix=/usr/local/python3
make && make install

安装完成后,可以通过以下命令检查Python版本。

/usr/local/python3/bin/python3.8 -V

步骤六:安装Scrapy框架

在安装Scrapy框架之前,需要安装一些依赖库,如libxml、libxslt等,可以使用以下命令进行安装。

sudo yum -y install libxml2-devel libxslt-devel

接着安装Scrapy框架,可以通过以下命令进行安装。

/usr/local/python3/bin/pip3.8 install scrapy

安装完成后,可以使用以下命令检查Scrapy版本。

/usr/local/python3/bin/scrapy version

示例一:使用Scrapy抓取网页

在安装完Scrapy框架后,可以使用以下命令创建一个新的Scrapy项目。

/usr/local/python3/bin/scrapy startproject myproject

创建完成后,进入myproject目录,使用以下命令创建一个新的Spider。

cd myproject
/usr/local/python3/bin/scrapy genspider example example.com

创建完成后,在example/spiders目录下会生成一个名为example.py的文件。

使用以下代码替换example.py文件中的内容,以抓取百度首页并输出网页标题为例。

import scrapy

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['www.baidu.com']
    start_urls = ['http://www.baidu.com/']

    def parse(self, response):
        title = response.css('title::text').get()
        print(title)

接着在命令行中使用以下命令启动Spider并抓取网页。

cd myproject
/usr/local/python3/bin/scrapy crawl example

抓取完成后,会在命令行中输出网页标题。

示例二:使用Scrapy抓取动态网页

除了抓取静态网页外,Scrapy还可以抓取动态网页,例如使用Ajax加载内容的网页。

以抓取豆瓣电影TOP250为例,首先可以使用以下代码创建一个新的Spider。

import scrapy

class DoubanSpider(scrapy.Spider):
    name = "douban"
    start_urls = [
        'https://movie.douban.com/top250',
    ]

    def parse(self, response):
        for href in response.css('div.hd a::attr(href)'):
            yield response.follow(href, self.parse_movie)

        for href in response.css('span.next a::attr(href)'):
            yield response.follow(href, self.parse)

    def parse_movie(self, response):
        yield {
            'title': response.css('h1 span::text').get(),
        }

该Spider会获取豆瓣电影TOP250列表中每个电影的详情页URL,并跟进链接抓取电影标题。需要注意的是,豆瓣电影TOP250使用Ajax加载分页内容,需要在请求头中添加referer字段才能正常获取页面。

在Spider中添加一行代码。

yield scrapy.Request(url=self.start_urls[0], callback=self.parse, headers={'Referer': 'https://movie.douban.com/'})

接着在命令行中使用以下命令启动Spider并抓取网页。

cd myproject
/usr/local/python3/bin/scrapy crawl douban -o movies.json

抓取完成后,会在当前目录下生成一个名为“movies.json”的JSON文件。

以上两个示例分别演示了如何使用Scrapy抓取静态网页和动态网页,并输出结果到命令行或JSON文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 关系数据库和 NoSQL 的区别

    关系数据库与 NoSQL 的区别 关系数据库(Relation Database,简称 RDB)和 NoSQL(Not Only SQL,非仅仅是 SQL)是两种数据库管理系统,在数据存储、数据模型和扩展性等方面存在巨大差异。本文将详细介绍关系数据库和 NoSQL 数据库的区别,并提供相关实例说明。 关系数据库 数据模型 关系数据库采用的是基于表格的模型,表…

    database 2023年3月27日
    00
  • openGauss数据库共享存储特性概述

    openGauss数据库共享存储特性概述 什么是openGauss数据库共享存储特性 openGauss数据库共享存储特性是指,在多个openGauss数据库实例之间共享物理存储资源。与传统的数据库共享方案不同,openGauss不仅可以共享数据文件、日志文件等常规存储资源,还支持共享临时文件、临时表空间、备份目录等特殊类型的存储资源。这使得openGaus…

    database 2023年5月19日
    00
  • springboot集成redis操作 使用HashOperations操作redis—-https://www.cnblogs.com/shiguotao-com/p/10560458.html 使用HashOperations操作redis

    使用HashOperations操作redis   方法 c参数 s说明 Long delete(H key, Object… hashKeys);   H key:集合key Object… hashKeys:key对应hashkey  删除map集合中一个或多个hashkey对应的value   Boolean hasKey(H key, Obj…

    Redis 2023年4月11日
    00
  • redis 队列操作的例子(php)

    Redis是一种高性能的内存数据存储系统,常用于缓存、队列和数据存储等场景。在PHP中使用Redis实现队列操作非常简单。 创建Redis实例 首先需要使用PHP Redis扩展创建一个Redis实例,代码如下: $redis = new \Redis(); // 实例化Redis对象 $redis->connect(‘127.0.0.1’, 6379…

    database 2023年5月22日
    00
  • C# SQLite数据库入门使用说明

    下面是“C# SQLite数据库入门使用说明”的完整攻略。 C# SQLite数据库入门使用说明 什么是SQLite数据库 SQLite 是一个轻量级的嵌入式关系型数据库系统。它是由Richard Hipp在1998年创建的,是一款用C语言开发的开源的数据库系统,支持SQL语言标准。SQLite 以文件形式存储数据库,这是与其他数据库软件的一个重要不同点。 …

    database 2023年5月21日
    00
  • CentOS7+apache+php7+mysql5.7配置教程详解

    下面我将为您详细讲解CentOS7上搭建Apache、PHP7、MySQL5.7的配置教程。 环境准备 在开始配置前,需要确保系统环境已经准备好。我们需要在CentOS7的服务器上安装并配置必要的软件及依赖。具体步骤如下: 安装必要的软件 sudo yum install wget net-tools unzip sudo yum groupinstall …

    database 2023年5月22日
    00
  • MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结攻略 概述 MySQL DBA 常用手册是一个针对数据库监控和性能优化的指南,它包含了数据库管理的各个方面,如服务器配置和维护、备份和恢复、监视和优化等。本指南旨在为DBA提供一些实用技术和工具,以帮助他们更有效地管理MySQL服务器。 目录 服务器配置与维护 备份和恢复 监视和性能优化 1. 服务器配置与维护 安装和配置My…

    database 2023年5月22日
    00
  • linux下改变键盘映射解决方案

    针对“linux下改变键盘映射解决方案”的问题,我会提供以下攻略: 1、查看当前的键盘映射信息 在进行键盘映射改变之前,先需要查看当前的键盘映射信息,可以使用xev命令来查看。 代码块: xev 执行该命令后,会打开一个窗口,在该窗口中按下需要查看的按键即可得到该按键的映射编码以及其他相关信息。 2、修改键盘映射 修改键盘映射可以通过xmodmap或setx…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部