如何抓取网页数据(有关,文章内容质量较高,小编分享给大家做个参考)

优采云 发布时间: 2021-12-08 20:13

  如何抓取网页数据(有关,文章内容质量较高,小编分享给大家做个参考)

  本文文章将详细讲解如何使用Scrapy抓取网页。 文章的内容质量很高,分享给大家作为参考。希望你看完这篇文章之后,对相关知识有了一定的了解。

  Scrapy 是一种快速先进的网络爬虫和网络抓取框架,用于爬取 网站 并从其页面中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。

  老规矩,使用前使用pip install scrapy安装。如果在安装过程中遇到错误,通常是错误:Microsoft Visual C++ 14.0 is required。你只需要访问~gohlke/pythonlibs/#twisted 网站下载Twisted-19.2.1-cp37-cp37m-win_amd64并安装,注意cp37代表我的版本原生 python3.7 amd64 代表我的操作系统位数。

  安装,使用pip install Twisted-19.2.1-cp37-cp37m-win_amd64.whl,然后重新安装scrapy后,安装成功;安装成功后我们就可以使用scrapy命令创建爬虫项目了。

  接下来,在我的桌面上运行cmd命令并使用scrapystartprojectwebtutorial创建项目:

  

  桌面会生成一个webtutorial文件夹,我们看一下目录结构:

  

  然后我们在spiders文件夹下新建一个quotes_spider.py,写一个爬虫爬取网站保存为html文件。 网站的截图如下:

  

  代码如下:

  import scrapy

#定义爬虫类class QuotesSpider(scrapy.Spider):    #指定爬虫名字 一会要用到    name = "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)#解析写入返回内容到html中    def parse(self, response):        page = response.url.split("/")[-2]        filename = 'quotes-%s.html' % page        with open(filename, 'wb') as f:            f.write(response.body)        self.log('Saved file %s' % filename)

  以下目录结构为:

  

  然后我们在命令行切换到webtutorial文件夹,执行命令scrapycrawlquotes进行爬取(quotes是刚刚指定的爬虫名):

  

  

  发现错误,没有名为'win32api'的模块,这里我们安装win32api

  使用命令pip install pypiwin32,然后继续执行scrapy crawl引用:

  

  可以看到爬虫任务执行成功。这时候webtutorial文件夹下会生成两个html:

  

  关于如何使用Scrapy抓取网页,我在这里分享。希望以上内容能对您有所帮助,让您了解更多。如果你觉得文章不错,可以分享给更多人看。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线