前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫学习开篇

爬虫学习开篇

作者头像
stormwen
发布2019-08-05 11:02:57
2640
发布2019-08-05 11:02:57
举报
文章被收录于专栏:公众号:googpy公众号:googpy

前 言

大家好,经过几天的调整和反思,从今天开始准备与大家一起学习「网络爬虫」。

在这个大数据时代,尤其是人工浪潮兴起的时代,不论是工程领域还是研究领域,数据已经成为必不可少的一部分,而数据的获取很大程度上依赖于爬虫的爬取,所以爬虫也逐渐变得火爆起来。

爬虫是一门非常有趣的技术,掌握了这门技术能让我们在繁荣的互联网中探索,方便快捷的收集各种各样的数据或者文件。

现在互联网公司招聘爬虫工程师,给的工资也比较高,我找了一个招聘网站,了解了现在爬虫工程师的工资是15k-18k左右,从这里也足见学习爬虫的重要性。

正 文

当然了,想要学好网络爬虫需要初步掌握一些基础知识:

  • 网络爬虫中常用的Python基础知识
  • HTTP协议通信原理
  • HTML、CSS、JS入门基础

今天先学习网络爬虫中常用的Python基础知识:

  • 面向对象
  • 字典、列表与元组
  • 迭代器与yield

Python中的包

为了避免模块名冲突,Python引入按目录来组织模块的方法,称为包(package)。

比如:

Mycompany 包

|- __init__.py 内置模块

|- __abc.py 模块

|- __xyz.py

面向对象

面向对象编程是一种程序设计,在Python中一切皆对象,面向对象编程把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

在学习面向对象编程时,肯定需要理解对象?以及它和类又有什么关系?推荐大家阅读,我之前写的Python的类和对象

那面向对象和爬虫又有什么关联呢?

假设我们要爬取一个博客上的文章,然后将这些文章的数据保存在本地。

代码语言:javascript
复制
article1 = { 'title': '学习python的心得总结', 'pub_date': '2019/1/2', 'body': '正文内容省略' }
article2 = { 'title': '如何用python编写命令行工具', 'pub_date': '2019/1/20', 'body': '正文内容省略'  }

当我们用面向对象的程序设计思想时,我们将文章这种数据类型视为一个对象,这个对象拥有title、pub_date和body这三个属性。

如果要打印一篇文章的标题与日期,首先必须创建出这篇文章对应的对象,然后,将对象实例化(print_title),让对象把自己的数据打印出来,代码如下:

代码语言:javascript
复制
class Article(object):

    def __init__(self, title, pub_date, body):
        self.title = title
        self.pub_date = pub_date
        self.body = body

    def print_title(self):
        print('%s: %s' % (self.title, self.pub_date))

当我们要用计算表示对一类具有共同特性、共同行为的事物时就可以采用面向对象的方式定义一个类来表示。而当发现相似事物间具有类似父子一般的传承关系时,则要采用继承来实现,推荐阅读:Python的类的继承

Python中的集合类型

  • []—数组,最常用的Python集合方式,也是衍生其它集合的基础
  • dist—字典,以“键-值”形式存在
  • list—列表,数据列表,提供更多的方法操作列表内容
  • set—集合,无序的不重复元素序列,可以用这种集合方式进行去重处理
  • tuple—元组,位置固定的有序元素组合

生成器、迭代器与yield

网络爬虫所需要处理的数据量通常非常庞大,对集合数据处理方式大多采用(for…in)的方式,但这种方式效率低,因此我们采用更为高效的方式来处理循环——生成器和迭代器。

迭代是Python访问集合元素的一种方式。迭代器从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。

迭代器两个基本的方法:iter()和next()。字符串,列表或元组对象都可用于创建迭代器,例如:

代码语言:javascript
复制
>>>list=[1,2,3,4]
>>> it = iter(list)    # 创建迭代器对象
>>> print (next(it))   # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>

生成器(generator)是非常强大的工具,在Python中,可以简单地把列表生成式改成generator,也可以通过函数实现复杂逻辑的generator。

总结

作为Python爬虫学习的开篇,很多东西都是引入,对于想深入了解爬虫的小伙伴,可以翻阅之前写的文章,下一步,我会理论结合实践,分享更优质的关于Python爬虫的内容,如果觉得学习路上很孤单,就和我一起来学习吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 googpy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前 言
  • 正 文
  • 总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档