六客Chrome插件

Web Scraper 正则匹配数字案例

[复制链接]
发表于 2020-12-16 20:24:41 | 显示全部楼层 |阅读模式

在 Web Scraper 抓取过程中,经常遇到需要获取数字的情况。下面以抓取携程酒店介绍为例,说明如何在 Web Scraper 中使用正则表达式来匹配数字。

本文使用的 sitemap 如下,可导入 sitemap 后根寻教程一步一步进行实践操作。

  1. {"_id":"ctrip","startUrl":["https://hotels.ctrip.com/hotel/2151817.html#ctm_ref=www_hp_bs_lst"],"selectors":[{"id":"element","type":"SelectorHTML","parentSelectors":["_root"],"selector":".htl_room_txt > p:nth-of-type(1)","multiple":false,"regex":"","delay":0}]}
复制代码


本文要抓取的数据是下图开业时间,装修时间,房间数的数字。Web Scraper 本身无法单独选择其中每个字段,所以需要使用正则表达式。

v1.jpg

1、Web Scraper 的正则匹配


正则表达式的匹配结果可以有很多个,比如当我们匹配数字的时候,会有很多个满足的结果。

根据 Web Scraper 的文档中说明,Web Scraper 使用正则表达式的时候默认只取第一个匹配的结果。

我们这里在 Web Scraper 的 Type 中选择 HTML 进行抓取(HTML 中信息更多,也可使用 Text)

v2.jpg

2、匹配数字



在正则表达式中,匹配数字使用的是 \d。在这里 \d 匹配的是一个数字,但是会匹配多个满足的结果,1 中说过 Web Scraper 只取第一个匹配的结果。

我们在 Web Scraper 的 Regex 打 \d 查看匹配结果。

v3.jpg

用 Data preview 查看结果

v4.jpg

这是因为在 1 中我们说过,Web Scraper 只会默认匹配第一个符合的结果,所以只匹配了 HTML 文件中的第一个数字 2。

3、匹配一个或多个数字



匹配一个或多个数字是在 \d 的后方加上 +,写为 \d+。

在 Web Scraper 的 Regex 中写上 \d+

v5.jpg

用 Data preview 查看结果

v6.jpg

这里三个数字都满足,但是因为 Web Scraper 只会默认匹配第一个符合的结果,所以只匹配了第一个连续数字 2009。

4、匹配固定位数的数字



匹配固定位数的数字是在 \d 的后方加上 {数字个数}。在案例中,我们用这种方法尝试匹配开业时间的年份。由于开业时间年份是 4 位数字,所以在这个地方写为 \d{4}。

在 Web Scraper 的 Regex 中写上 \d{4}

v7.jpg

用 Data preview 查看结果

v8.jpg

5、匹配文字之前的数字
由于 Web Scraper 在匹配的时候,只会默认匹配多个可能性中的第一个。所以在本案例中如果要抓取 2018 年装修,就必须结合后面的 年装修 进行匹配。

匹配文字之前的正则表达式是(?=文字),需结合匹配多个数字使用。我们匹配装修年份就写成 \d+(?=年装修) 或写为 \d{4}(?=年装修) 都可

在 Web Scraper 的 Regex 中写上 \d+(?=年装修)

v9.jpg

用 Data preview 查看结果

v10.jpg

6、匹配数字长度区间

在我们这个案例中,有一个房间数,在这个网页中是 62。除了可以使用 \d+ 之外。我们可以写 \d{2},但是 \d{2} 会只匹配 2 位数字,如果抓取的网页是 123 间房,就无法进行匹配。此时可以针对数字长度的区间设置匹配数字的长度,写为 \d{长度 1,长度 2}。我们在此案例,房间数可能是 2 位数字到 3 位数的长度。我们写成 \d{2,3}。如果房间可能有 10-9999 间,则写为 \d{2,4}。

在 Web Scraper 的 Regex 中写上 \d{2,3}(?=间房)

v11.jpg

用 Data preview 查看结果

v12.jpg

7、匹配数字和文字结合
在此案例中,如果需要获取完整的 2009 年开业。则需要把后面的文字一起获取。匹配文字的正则表达式是 (文字)。在这里写为\d+(年开业) 或 \d{4}(年开业)。

在 Web Scraper 的 Regex 中写上\d+(年开业)

v13.jpg

用 Data preview 查看结果

v14.jpg

六客插件 - 好用的插件

本站鼓励并倡导使用正版软件,并不做任何破解软件的工作内容。站内所有软件资源版权均属于原作者所有,资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

最近更新的插件

免责声明

六客插件所发布的一切软件应用的帖子仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。(如有侵犯了您权益的应用请点此处联系我们处理

Archiver|小黑屋|sitemap|, Processed in 0.103567 second(s), 7 queries , File On.   
快速回复 返回顶部 返回列表