【学习心得 084】网络爬虫

一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。——三毛

作者:Chenglun Cai

从网页上收集数据,从百度文库下载文档。如果我们需要的数据很多(百度文库没有足够的券),简单的粘贴和复制将会是耗时且枯燥的。但是作为一位编程人员,我们可以借助编程轻松地从各个网页上爬取我们所需要的数据。今天,我为大家分享的就是从网页中如何爬取数据,共分为三部分。

1

获取如下图所示网页中的信息(包含了所有的HTML信息)

代码如下:

【注意】urlib 还是urllib2?

1. Python 2.x 里的 urllib2库 在 Python 3.x 里,urllib2 改名为 urllib,被分成一些子模块;

2. urllib 是 Python 的标准库(就是说你不用额外安装就可以运行这个例子),包含了从网络请求数据,处理 cookie,甚至改变像请求头和用户代理这些元数据的函数;

3. 在本书中广泛使用 urllib, 所以被建议读这个库的 Python 文档

(https://docs.python.org/3/ library/urllib.html)。

2

使用BeautifulSoup爬取如下网页信息,这个网页信息关于一本小说《War and Peace》在这个页面里,小说人物的对话内容都是红色字体表示,人物名称都是绿色字体表示。

代码

【注意】这里我们使用BeautifulSoup 对象查找你想要的信息,那么什么时候使用get_text( )?

get_text( ) 会把你正在处理的 HTML 文档中所有的标签都清除,然后返回 一个只包含文字的字符串。 用 BeautifulSoup 对象查找你想要的信息,比直接在文本里查找信息要简单得多。

BeautifulSoup 里的 find( ) 和 findAll( )可能是你最常用的两个函数。 借助它们,你可以通过标签的不同属性轻松地过滤 HTML 页面,查找需要的标签组或单个标签。

01

获取标题文本

02

获取给定标签的前5个标签的内容

3

以下网站是一个虚拟的购物网站,现在我们需要爬取网页中的信息。这里我们给出获取价格信息中蔬菜篮的价格$15。

获取数据的代码和结果。

我在这里给大家整理以下代码的思路:

如何实现的呢?

用数字表示步骤的话:

— "$15.00"(4)

(1)

(1)选择图片标签src="../img/gifts/img1.jpg";

(2)选择图片标签的父标签(在示例中是 标签);

(3)选择 标签的前一个兄弟标签previous_sibling(在示例中是包含美元价格的

标签);

(4)选择标签中的文字,“$15.00”。

当我们只关注收集类似以下整个表格的信息,我们可以进行如下操作:

代码:

展示结果如下:

查找所有文本信息中包含the price的内容

根据标签id=text把所有内容找出来

推文内容仅代表学生本人学习心得,不代表本公众号立场。该公众号平台旨在鼓励学生学习分享知识,至于对错,大家都可以留言评论,甚至给推文打分。作者也需要大家的鼓励,以及大家的宝贵的意见。

编辑:李海燕

喜欢我,记得关注、点赞、转发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181110B1OUQE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券