使用Python爬虫抓取图片和文字实验【玩转华为云】

举报
nukinsan 发表于 2022/02/26 23:14:27 2022/02/26
【摘要】 了解华为云产品页面信息,实操体验华为云VPC/ECS/RDS等云服务配置操作,通过使用所购买的华为云产品和终端命令行完成部署Python爬虫。

1、  实验目标

了解华为云产品页面信息,实操体验华为云VPC/ECS/RDS等云服务配置操作,通过使用所购买的华为云产品和终端命令行完成部署Python爬虫。

2、  准备环境

2.1、 预置环境

点击上方“预置实验环境”按钮,【约等待3分钟】后预置成功。预置成功后ECS资源用户、密码信息可点击预置环境信息查看。


2.2、 创建云数据库RDS

在已登录的华为云控制台,展开左侧菜单栏,点击“服务列表”->“数据库”->“云数据库 RDS”进入云数据库RDS控制台。
点击“购买数据库实例”。
① 计费模式:按需计费;
② 区域:华北-北京四;
③ 实例名称:自定义,如rds-spider;
④ 数据库引擎:MySQL;
⑤ 数据库版本:5.7;
⑥ 实例类型:单机;
⑦ 存储类型:SSD云盘;
⑧ 可用区:可用区二;
⑨ 时区:UTC+08:00;

 

 

 性能规格:通用型,2 | 4GB
② 存储空间:40GB
③ 硬盘加密:不加密;
④ 虚拟私有云:选择预置环境预置的虚拟私有云;
⑤ 内网安全组:选择预置环境预置的内网安全组;
⑥ 数据库端口:默认(3306);
⑦ 设置密码:现在设置;
⑧ 管理员密码:自定义,如rIDM7g4nl5VxRUpI(请牢记设置的密码);
⑨ 参数模板:默认;
⑩ 购买数量:1;
⑪ 只读实例:暂不购买;
如下图所示:


参数设置完成点击“立即购买”,确认参数无误后点击“提交”完成购买,点击“返回云数据库RDS列表”可查看到云数据库RDS正在创建中,约等待【4-6分钟】数据库状态变为“正常”,说明数据库创建完成,如下图所示:

2.3、 创建数据库及数据库表

点击云数据库RDS“rds-spider”进入详情页,在左侧导航栏,单击“连接管理”->“公网地址”->单击“绑定”->“确定”。如下图所示:

 

弹性公网IP绑定完成,点击“登录”,输入用户名:root,密码:创建云数据库RDS时设置的密码,如下图所示。在此步骤中可以测试下密码是否正确。


点击“登录”进入数据库列表,然后点击“+新建数据库”,数据库名称为“vmall”,点击“确定”,完成数据库创建,如下图所示:


在新建的数据库右侧点击“新建表”,进入数据库“vmall”的表管理页,点击“+新建表”,表名:“product”,其他参数默认,点击“下一步”如下图所示:


添加3个字段分别如下:
①列名id,类型int,长度11,勾选主键,扩展信息如下图(id自增长);
②列名title,类型varchar,长度255,勾选可空;
③列名image,类型varchar,长度255,勾选可空。

设置完成点击“立即创建”,弹出SQL预览页面。

2.4、         查看目的网页并编写爬虫代码

2.4.1、  洞察目的网页

在【实验操作桌面】浏览器新建tab页,输入华为商城地址并访问:https://sale.vmall.com/huaweizone.html,在打开的页面选择一件商品打开商品详情页,如下图所示:

 

按“F12”查看网页元素,选择“鼠标跟随”按钮查看元素,然后点击网页中某个元素,可以看到源码界面显示了此元素对应的源码片段,从该源码片段中找到元素class或是id属性,如下图所示:


2.4.2、   创建爬虫项目并导入

切换到【实验操作桌面】,打开“Xfce终端”,依次执行以下命令在桌面新建项目文件夹。

cd Desktop

scrapy startproject vmall_spider

cd vmall_spider

scrapy genspider -t crawl vmall "vmall.com"

 

启动“Pycharm”,启动成功点击“File->Open”,选择创建的项目“vmall_spider”如下图所示:

点击“OK->This Window”完成项目导入。


2.4.3、   编写爬虫代码

在项目“vmall_spider->“spiders”下,双击打开“vmall.py”文件,删除原有代码,写入以下代码:

import scrapy

from scrapy.linkextractors import LinkExtractor

from scrapy.spiders import CrawlSpider, Rule

from vmall_spider.items import VmallSpiderItem

 

class VamllSpider(CrawlSpider):

    name = 'vamll'

    allowed_domains = ['vmall.com']

    start_urls = ['https://sale.vmall.com/huaweizone.html']

 

    rules = (

        Rule(LinkExtractor(allow=r'.*/product/.*'), callback='parse_item', follow=True),

    )

按“Ctrl+s”键保存,如下图所示:


双击打开“itmes.py”文件,删除原有代码,写入以下代码:

# Define here the models for your scraped items

#

# See documentation in:

# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy

class VmallSpiderItem(scrapy.Item):

    title=scrapy.Field()

    image=scrapy.Field()

双击打开“pipelines.py”文件,删除原有代码,写入以下代码(使用前面步骤创建的云数据库RDS的密码、前面步骤绑定的弹性公网IP替换代码中的相关信息)。

鼠标右键“vmall_spider”(目录第二层)点击“new->Python File”创建“start.py”文件,填入名称“start”,点击“OK”如下图所示:

2.5、 在弹性云服务器ECS上运行爬虫程序

2.5.1、   安装所需依赖

登录弹性云服务器ECS
① 切换到【实验操作桌面】已打开的“Xfce终端”,执行以下命令(使用弹性云服务器ECS的公网IP替换命令中的【EIP】),成功登录云服务器后显示如下;

说明: 在华为云控制点展开左侧菜单栏,点击“服务列表”->“计算”->“弹性云服务器ECS”进入管理列表,可查看复制名称为“python-spider”的ECS服务器的弹性公网IP

依次执行以下命令安装pip依赖。

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

执行以下命令(使用弹性云服务器ECS的弹性公网IP替换命令中的EIP)上传项目到弹性云服务器ECS,提示输入密码为:使用预置环境信息中云服务器名称为python-spider的用户密码

cd /home/user/Desktop && scp -r ./vmall_spider root@EIP:/root

仿照步骤3.1重新登录弹性云服务器ECS,登录成功后执行以下命令,可查看到上传的项目。

2.5.2、  查看爬取数据

切换至【实验操作桌面】浏览器已登录云数据库RDS页面,点击“对象列表”->“打开表”如下图所示:


3、  结束语

Python使用场景较丰富,通过Python进行爬虫只是其功能之一,希望通过本次实验操作能让大家更熟悉Python语言。若想了解更多Python相关操作,可在华为网络进行其它Python相关实验操作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。