Scrapy采集名人名言实验报告

工具/原料:

阿里云服务器、MobaXterm_v9.4/Xshell

实验目的:

了解云服务器、搭建虚拟环境、学习用Scrapy采集数据

主要内容:
  1. 搭建云服务器
  2. 使用远程终端软件连接到服务器
  3. 建立用户组
  4. 进入个人用户搭建虚拟环境
  5. 创建数据采集项目
  6. 定义spider(在本地用文本编辑器编辑)并上传到个人用户文件夹中
  7. 执行爬虫
  8. 保存数据
  9. 数据格式转换

在搭建云服务器的时候我们是小组一起做的,选择阿里云有两个原因,一个是老师用的是阿里云,选择这个可以避免在实验过程中出现不知道怎么解决的问题;另一个原因是听其他人说阿里云对于学生有优惠价格,其优惠价格对于学生来说也比较能够接受。另外,需要特别注意的是,一定要选好操作系统。我们当时忽略了我们买的云服务器自带的操作系统是CentOS 6.8 64位:


操作系统.png

但是老师给的范例都是在Ubuntu的操作系统下进行的,所以在刚开始搭环境的时候怎么做怎么不对,做了很多无用功,后来请教了大神才知道使我们的操作环境跟执行的代码是不匹配的。
在创建虚拟环境的过程中,发现使用老师给的远程终端软件MobaXterm的Session一段时间不进行操作,就老是容易断开连接,如下图所示:


1.png

在搭环境的过程中断开的话又得重新连接,然后重新输入命令,所以在搭环境的过程中动作一定要快。
本来打算复制里面的文字去百度查一查有没有什么能够解决这种问题的,结果点击Ctrl+C就关掉了搭环境的窗口,当时还完全不知道发生了什么,后来查资料才知道Ctrl+C表示强制停止当前程序,事实告诉我们:不是什么都可以用Ctrl+C进行复制的!Ctrl+C不一定就是复制的快捷键,这也告诉了我们生活中的一个小常识,那就是不是所有东西都是一成不变的。。。所以本来想要搭建环境的过程图都截下来,现在都被关掉了。。。所幸在强制关闭之前我截过一张图:
2.png

MobaXterm的Session真的一直断一直断,一退出界面查找资料的功夫就又断开连接了,实在是太麻烦了,所以经同学建议,重新下载了一个远程终端软件:Xshell。在使用的过程中发现了MobaXterm和Xshell各自的优缺点,由于一开始就是用的是MobaXterm,所以有可能是因为先入为主的原因,除了总是短时间不进行操作就会断开连接以外,界面个人觉得比Xshell更直观,而且可以自己打开文件夹直观的查看到有哪些文件,不需要输入指令去查看,但是确实老是断开连接这个问题太烦人。
由于断开了连接,所以我直接在Xshell中激活并进入之前搭好的虚拟环境即可。


3.png

在创建采集数据项目的时候出现了一点小错误:
4.png

查看代码,发现是因为我之前已经建立过这个采集数据的项目并且将py文件:
  import scrapy

  class QuotesSpider(scrapy.Spider):
    name = "hzz_quotes"

    def start_requests(self):
        urls = [
            'http://quotes.toscrape.com/page/1',
            'http://quotes.toscrape.com/page/2',
        ]

        for url in urls:
            yield scrapy.Request(url = url, callback = self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'hzz-quotes-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
            self.log('Saved file %s' % filename)

上传到了spider文件夹中,所以可以直接进行查看了:


5.png

执行爬虫:


6.png

从代码可知,执行爬虫之后,我们得到了html文件:
7.png

找到并且保存:


8.png

但是在爬取json数据:
import scrapy

class QuotesSpider(scrapy.Spider):

name="quotes"
start_urls=[
    'http://quotes.toscrape.com/page/1/',
]


def parse(self,response):
    for quote in response.css('div.quote'):
        yield {
            'text':quote.css('span.text::text').extract_first(),
            'author':quote.css('small.author::text').extract_first(),
            'tags':quote.css('div.tags a.tag::text').extract(),
        }

        next_page=response.css('li.next a::attr(href)').extract_first()
        if next_page is not None:
            next_page=response.urljoin(next_page)
            yield scrapy.Request(next_page,callback=self.parse)

的时候遇到了问题,总是爬取不到数据,我仔细对过代码,询问过同学,也让同学帮忙检查了是不是哪里出错了,但是都没找出来原因是什么。

9.png

如图所示,在保存json文件的时候,一直都处于文件传输状态中,传输的大小显示的是0kb,说明并没有爬取到任何数据。
10.png

之后,我就重新创建了一个数据采集项目,然后将本地编写的Spiders文件上传到相应的文件夹中,最后执行竟然就成功了:
11.png

12.png

并且成功的爬取到了数据并且保存成了json文件:
json文件.png

最后,将json文件转化为XML文件(JSON与XML互转),然后进行了一些修改:json文件转换为XML文件

参考链接:
JSON与XML互转
Linux云服务器下配置Scrapy并抓取数据
Scrapy相关知识

我的其他文章:网站robots.txt学习笔记——以豆瓣和淘宝为例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容