实验报告

实验名称:关于名人名言的数据抓取
一、实验目的:了解网络数据抓取的基本流程,搭建虚拟开发环境。
二、实验内容:

1.搭建云服务器。
2.创建虚拟开发环境。
3.安装Python。
4.安装Scrapy。
5.创建数据采集项目。
6.进行数据爬取。
7.提取并存储数据。

三、实验过程:

1.云服务器(Ubuntu)。
网上查询了解云服务器的搭建过程,比较阿里云服务器和腾讯云服务器(主要是价格比较),阿里云服务器学生有优惠,虽然腾讯也有优惠,但是考虑了老师用的也是阿里云,便于参考,可以避免许多错误,加之时间仓促,按照老师的步骤可以节省时间,我们小组就购买了阿里云服务器,得到了IP。
2.远程连接服务器(MobaXterm/Xshell)
远程连接服务器,我首先用的是MobaXterm,老师给了安装包,找了教程之后直接进行安装,但是连接上服务器之后,几秒就会断开,需要不断的重连,这对于新手来说,不利于实际操作。因此,我们又选择了Xshell进行远程访问服务器。如图所示:

1.png

2.png

3.建立用户组
4.创建虚拟开发环境(virtualenv venv)
5.安装Scrapy
6.创建数据采集项目(nini)
7.定义Spider:

import scrapy
class QuotesSpider(scrapy.Spider):
  name="glfspider"
  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='glfspider-%s.html'%page
    with open(filename,'wb') as f:
      f.write(response.body)
      self.log('Saved file %s'%filename)  

8.执行爬虫
9.存储数据:

import scrapy
class QuotesSpider(scrapy.Spider):
  name="nini"
  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)  

10.json数据文件转成xml文件

json.png

json数据文件转成xml文件,我直接用在线转换工具
3.png

四、总结

在学习的过程中,了解了一些基础的知识:云服务器,Python,Scrapy,Xshell。但是谈不上掌握了这些知识,研究的还不够清楚,许多问题是在同学或者百度的帮助下解决的。写代码的时候一定要细心,注意缩进,我第一次采集数据的时候只有一条,检查了很久才发现少打了一个括号。其次,发现自己对相关知识了解太少,技术薄弱,应该多关注一下学术前沿的知识。

相关链接:
Scrapy入门教程: http://www.cnblogs.com/txw1958/archive/2012/07/16/scrapy-tutorial.html
Ubuntu通用基础教程:http://blog.csdn.net/top_worker/article/details/45918399
Python爬虫入门教程:http://blog.csdn.net/column/details/why-bug.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容