资讯专栏INFORMATION COLUMN

互联网金融爬虫怎么写-第二课 雪球网股票爬虫(正则表达式入门)

entner / 662人阅读

摘要:系列教程互联网金融爬虫怎么写第一课网贷爬虫入门上一节课我们一起通过一个网贷爬虫,深入了解了一下以及其在最终实际使用中的写法。可以毫不夸张的说,对于写简单爬虫来说,最最重要的,就是使用好,以及这一课要讲的正则表达式。

系列教程:

互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门) 

上一节课我们一起通过一个p2p网贷爬虫,深入了解了一下XPath以及其在最终实际使用中的写法。可以毫不夸张的说,对于写简单爬虫来说,最最重要的,就是使用好XPath,以及这一课要讲的正则表达式。

正则表达式,又称正规表示法、常规表示法(英语:Regular   Expression,在代码中常简写为regex、regexp或RE)

正则表达式几乎出现在每一个编程语言中,有着极其广泛的应用,比如做网页的时候,判断用户输入的是否是邮箱这样的正则。正则表达式本身写法基本在各个语言中都是一致的,不过调用方法可能略有不同,在我们教的爬虫中,正则表达式主要应用在界定列表url和内容url的格式上,就是什么url是列表url,什么url是内容url,什么url直接丢弃掉。这样做主要是为了提高整个爬虫的爬取效率,防止爬虫在无关的url花费太长的时间,当然如果希望全网爬的话,也可以不做设定。

对于手里有点闲钱的人来说,可能最常见的投资品就是股票了,虽然中国股票市场那叫一个变幻诡谲,妖兽频出。但依旧相对其他流通性差,投资门槛高的投资产品来说,有着国家信用背书的股市依然是不二的投资选择。股票的数据很多地方都有,我们今天就通过雪球的行情中心,爬一下当天各个上市公司的股票价格吧。

打开雪球行情中心:

哇,突然觉得这是我们教程最高大上的一次。首先,这个页面就可以作为一个不错的入口Url,因为有着挺多的连接,不过从效率来讲,虽然爬虫本身可以帮我们去做很多事情,但是最好还是直接找到列表url会更快一些。我们继续往里找,可以看到这样一个界面:

https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=1

原谅我实在不懂股市,姑且就认为这个就是所有股票价格的列表,砖家勿喷~

好了,我们看下这个下一页规律

https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2

https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=3

看着这种url的结构,发自内心想说:

好了,我们先根据这个连接来提取一下正则表达式,首先我们选中其中一个url,然后原封不动的写出来:

https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2

首先我们需要先把正则里面需要转义的字符进行转移,由于正则表达式中.代表任意字符,?代表指定字符出现0次或者1次,因此如果我们想匹配这两个字符本身的时候一定要记得将他们转义,当然正则中还有很多其他字符需要转移,不过这两个字符是url中最常见的,也是大家最容易弄错的地方。

经过转义之后的字符串是这样的:

https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=d+

最后,一个经验性的东西值得注意,一般来说https的网站都会支持http,甚至有的连接会写成http,因此这里为了程序的健壮性,最好将这段正则修改一下兼容http的格式,修改的方式是我们允许s存在或者不存在,正则中提供了三个字符表示字符出现数量的区间,分别是?表示0或1次,+表示1或多次,*表示0或多次。这里很明显的,我们应该使用?:

https?://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=d+

注意这个问号是正则自己的问号,并不需要转义。

这样我们就把列表页的url的正则表达式写出来了。

同样的方法,我们写出内容页的正则表达式:

https?://xueqiu.com/S/SHd{6}

这里的{6}表示有6位,当位数确定或者范围确定时,可以使用花括号的形式来表示。再次申明,由于本身股票知识匮乏,暂且认为所有代码都是6位的。

写到这里感觉已经离大功告成不远了,然而,当我们测试就可以发现,所有页面的url实际上都是由js生成的,通过ajax请求来的。前功尽弃啊,不过还好咱们还学到了东西。不要灰心,黎明就在最黑暗的时间之后。我们下一课就给大家讲一讲碰到这些个ajax请求该怎么办。

对爬虫感兴趣的童鞋可以加qq群讨论:566855261。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45496.html

相关文章

  • 互联金融爬虫怎么二课 雪球股票爬虫正则达式入门

    摘要:系列教程互联网金融爬虫怎么写第一课网贷爬虫入门上一节课我们一起通过一个网贷爬虫,深入了解了一下以及其在最终实际使用中的写法。可以毫不夸张的说,对于写简单爬虫来说,最最重要的,就是使用好,以及这一课要讲的正则表达式。 系列教程: 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)  上一节课我们一起通过一个p2p网贷爬虫,深入了解了一下XPath以及其在最终实际使用中的写法。...

    wenyiweb 评论0 收藏0
  • 互联金融爬虫怎么-第一课 p2p爬虫(XPath入门

    摘要:之前写了一个电商爬虫系列的文章,简单的给大家展示了一下爬虫从入门到进阶的路径,但是作为一个永远走在时代前沿的科技工作者,我们从来都不能停止。金融数据实在是价值大,维度多,来源广。由于也是一种,因此通常来说,在中抽取某个元素是通过来做的。 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战...

    kk_miles 评论0 收藏0
  • 互联金融爬虫怎么-第一课 p2p爬虫(XPath入门

    摘要:之前写了一个电商爬虫系列的文章,简单的给大家展示了一下爬虫从入门到进阶的路径,但是作为一个永远走在时代前沿的科技工作者,我们从来都不能停止。金融数据实在是价值大,维度多,来源广。由于也是一种,因此通常来说,在中抽取某个元素是通过来做的。 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战...

    jlanglang 评论0 收藏0
  • 手把手教你电商爬虫-二课 实战尚妆分页商品采集爬虫

    摘要:剩下的同学,我们继续了可以看出,作为一个完善的电商网站,尚妆网有着普通电商网站所拥有的主要的元素,包括分类,分页,主题等等。 系列教程 手把手教你写电商爬虫-第一课 找个软柿子捏捏 如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子切糕王子这个电商网站好好的练了一次手,相信大家都应该对写爬虫的流程有了一个大概的了解,那么这课咱们就话不多说,正式上战场,对垒...

    junfeng777 评论0 收藏0
  • 手把手教你电商爬虫-二课 实战尚妆分页商品采集爬虫

    摘要:剩下的同学,我们继续了可以看出,作为一个完善的电商网站,尚妆网有着普通电商网站所拥有的主要的元素,包括分类,分页,主题等等。 系列教程 手把手教你写电商爬虫-第一课 找个软柿子捏捏 如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子切糕王子这个电商网站好好的练了一次手,相信大家都应该对写爬虫的流程有了一个大概的了解,那么这课咱们就话不多说,正式上战场,对垒...

    objc94 评论0 收藏0

发表评论

0条评论

entner

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<