网页抓取数据百度百科(Python开发的一个快速、高层次抓取数据的学习方法!)

优采云 发布时间: 2022-02-24 01:10

  网页抓取数据百度百科(Python开发的一个快速、高层次抓取数据的学习方法!)

  记得十几年前我还是高中生的时候,所谓的智能手机根本就没有普及。如果你想在学校阅读大量的电子书,你基本上依赖于具有阅读功能的 MP3 或 MP4。以及电子书的来源?在随时随地无法上网的情况下,有时我们靠的是一种傻瓜式方法:一页一页地粘贴复制一些小说网站的内容。而那些上百章的网络小说,靠这样的人工操作,确实很头疼。我多么希望我有一个工具可以为我自动化繁重的手工工作!!!

  

  好了,言归正传,我最近一直在研究如何使用爬虫框架Scrapy。说一下想学Scrapy的初衷。

  学习目的:抓取我经常浏览的十几个新闻类别网站的新闻数据,然后在一个统一的html页面中浏览。

  实现方法:第一步是使用Scrapy抓取数据。第二步,使用Django生成html页面 Scrapy 简介 Scrapy是用Python开发的一个快速、高级的屏幕抓取和网页抓取框架,用于抓取网站并从页面中提取结构化数据。Scrapy应用广泛,可用于数据挖掘、监控和自动化测试(百度百科上的介绍)。

  经过几天的学习,初次使用Scrapy,首先需要了解的是以下几个概念:

  Spiders:解析网页的类,你的大部分工作是如何编写一个继承自Spiders的类。选择器:帮助您轻松查询网页中需要的内容。(在 Spiders 中使用) Items:数据类,将抓取的内容保存到其中。项目管道:这是您定义要对数据类执行的所有操作的地方。所以,你需要做的就是编写上面提到的四个类,剩下的交给 Scrapy 框架。

  你可以先创建一个scrapy项目:

  scrapy startproject getMyFavoritePages

  

  在文件 spiderForShortPageMsg.py 中是我们要编写的 Spiders 子类。

  简单的例子:现在我想在网站中获取所有文章的标题和文章的地址。

  第 1 步:编写一个继承自 Spiders 的类

  

  Scrapy框架会自动调用这个类的方法parse(),其中parse()最后调用自定义方法parse_lobste_com()来解析具体的html页面,找到我想要的数据,保存在数据类的一个Items中目的。

  不要被这行代码吓倒:

  response.xpath("//div/div[2]/span[1]/a[@class='u-url']"

  就是前面提到的Selectors。这是用于定位您要查找的 html 标记的内容。有两种选择器,即XPath选择器和CSS选择器,这两种选择器都会用到。

  这是我的 Item 数据类(即上面的 pageItem)。

  

  第 2 步:在 Item Pipeline 中定义要对数据类 Item 执行的所有操作。

  现在所需的数据已经在 Item 对象中。考虑到您的最终目的,最好的选择当然是将所有数据保存在数据库中。

  说到数据库操作,不得不提Django中的models类。只需几个简单的设置,就可以直接调用Django中的models类,从而省去复杂的数据库操作。不要太担心。谁用谁知道!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线