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

yizhihongxing

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日

相关文章

  • Fckeditor XML Request error:internal server error (500) 解决方法小结

    问题描述: Fckeditor是一个基于web的HTML文本编辑器,它允许用户通过一个富文本编辑器管道来编辑HTML内容。但有时会出现“Fckeditor XML Request error: internal server error (500)”错误,导致无法正常使用。本文将介绍如何解决这个问题。 解决方法: 此错误是由服务器上的配置问题引起的,解决方法…

    database 2023年5月21日
    00
  • SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

    Title: SQL Server 2008中的代码安全(二) DDL触发器与登录触发器 概述 在SQL Server 2008中,为了进一步提高数据库安全性,可以使用DDL触发器和登录触发器来进行代码安全管理操作。DDL触发器可以在某些DDL语句执行时自动触发,以便在执行前或执行后进行附加操作;登录触发器可以在用户登录时自动触发,以便执行有关用户身份验证的…

    database 2023年5月21日
    00
  • 运维角度浅谈MySQL数据库优化(李振良)

    《运维角度浅谈MySQL数据库优化(李振良)》是一篇非常实用的MySQL数据库优化指南。如何通过优化索引、调整参数等手段提高MySQL数据库性能,是每个MySQL数据库管理员都需要掌握的基本技能。以下是运维角度浅谈MySQL数据库优化的完整攻略: 一、查看MySQL数据库的配置 在进行MySQL数据库优化之前,首先需要查看MySQL数据库的配置。命令如下: …

    database 2023年5月19日
    00
  • SQL 聚合Null列

    SQL聚合函数是SQL语句中常用的一种操作类型,可以对多行记录进行计算统计,例如计算平均值、总和、最大值、最小值等。但是,如果某些记录中的计算字段是空值(NULL),如果使用聚合函数,会导致结果不符合预期。因此,我们需要对聚合Null列的相关注意事项进行详细介绍。下面是完整攻略及实例。 完整攻略 1. 聚合函数的分类 聚合函数可以分为两类:包括NULL值和不…

    database 2023年3月27日
    00
  • SQL SERVER性能优化综述(很好的总结,不要错过哦)第1/3页

    我很乐意为你提供有关“SQL SERVER性能优化综述”的完整攻略。下面,我将按照以下步骤进行讲解: 1.简介:介绍为什么要进行SQL SERVER性能优化,以及提升SQL SERVER性能的好处。 2.诊断:讲解如何诊断SQL SERVER性能瓶颈,具体包括SQL SERVER性能诊断工具,如何分析性能日志等。 3.优化:讲解如何进行SQL SERVER性…

    database 2023年5月19日
    00
  • mysql存储过程之游标(DECLARE)原理与用法详解

    MySQL存储过程之游标(DECLARE)原理与用法详解 什么是游标 游标(Cursor)是一种针对查询结果集的数据操作方式。它可定位于结果集中的某一行,并对该行执行某种操作。使用游标需要在MySQL存储过程中声明游标类型变量,用fetch命令操作游标获取结果集中的数据。 游标的声明 DECLARE语句用来声明一个游标变量和它的数据类型。声明游标的语法如下:…

    database 2023年5月22日
    00
  • 三个缓存数据库Redis、Memcache、MongoDB

    >>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Memcached的局限性:只支持简单的key/value数据…

    Redis 2023年4月11日
    00
  • 详细介绍windows下MySQL安装教程

    详细介绍windows下MySQL安装教程 MySQL是目前世界上最流行的开源关系型数据库管理系统,常被用来作为网站后台数据管理和存储的解决方案。在Windows操作系统下,安装MySQL可以实现本地开发环境的搭建,为后续的应用程序开发提供基础支持。以下是详细的MySQL安装教程: 下载MySQL安装包 首先,从MySQL官网https://dev.mysq…

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