如何抓取网页上的文字?
的有关信息介绍如下:
昨天有一位用户要查固定电话号码归属地,通常查手机号码归属地的比较多,查固定号码归属地的还是头一次。本着急客户之所急的服务宗旨,小编第一时间根据客户提供的号码归属地查询链接写了一个批量查询公式。由于其抓取过程简单,且使用公式非常有代表性,所以今天小编整理一个完整详细的教程。
先贴一个最终效果图,表格中有若干电话号码,写公式=GetJsonSource()和公式=GetJsonProperty()最终抓取电话号码的归属地。
接下来小编介绍详细步骤。
第一步,找一个可靠的查询网站。客户提供了一个查询网站,实测发现,查询速度快、结果准确,且未发现有封IP或验证码限制。
第二步,查找查询链接。一个网页有N个查询请求,为了提高查询效率,精准查询,这里要找到具体查询的链接。此时,可借助浏览器的Network网络请求工具查找,比如,使用Chrome谷歌浏览器,按快捷键F12打开开发者工具,点击Network选项卡,然后回到网页上,点击号码查询按钮,到Network网络请求链接,会出现刚刚的查询请求。点击这个查询链接,点击右侧Preview选项卡,会发现一个JSON格式的数据,清晰的显示了号码归属地是“山东青岛”。说明这个链接是对的。
点击Headers选项卡,发现Request URL是https://cx.shouji.360.cn/phonearea.php?number=053286883918,链接中只有电话号码,说明这个链接可以拼接任意电话号码,拼接哪个号码就是查哪个号码的归属地,当然最最最重要的是,链接中没有token或sign签名参数,说明可以任意构造查询链接。
检查Request Method请求类型,发现是GET,说明这个链接可以直接在浏览器中打开,于是小编将链接复制到浏览器地址栏中,可以顺利返回结果。如下图所示,所以返回的结果中包含了\u开头的unicode编码,但可以确定这就是要的结果,只不过现在汉字显示成了unicode编码,这个不是问题,JSON解析公式GetJsonProperty()就可以自动转换成汉字。
第三步,写网页抓取公式。简单设计一下表格,方便批量向下拖动公式。使用JSON抓取公式前,先拼接查询网址,比如B3的公式是=$B$1&A3,拼接成一个完整的查询网址。然后使用公式=GetJsonSourceW(B3)查询拼接后链接返回的值,这个值是一串JSON格式的字符串。由于这里使用的是=GetJsonSourceW(B3)公式,需要打开Excel浏览器进行网页抓取。
第四步,运行Excel浏览器网页抓取任务。点击“设置网页抓取任务”菜单,再点击“开始”按钮即可。
第五步,写公式提取号码归属地。公式= GetJsonProperty (C3,"data.province")提取JSON字符中的省,GetJsonProperty( C3,"data.city")提取JSON字符中的市,这样用&符号链接起来就是完整的归属地。
一共五步,熟练的话,5分钟就能写好公式设计好查询模板。几千个号码归属地查询,本来看似一个复杂的工作,借助Excel网络函数库插件的网络抓取公式,简简单单就可以完成。既完成了工作,又不用加班,也不耽误追剧。
本案例中,小编使用=GetJsonSourceW(B3)抓取,其实也可以用公式=GetJsonSource(B3),但实测中,发现请求超过100的话,表格可能卡,所以就使用Excel浏览器工具查,避免表格卡死。
关于号码归属地查询,Excel网络函数库提供了手机号码归属地查询公式=GetPhoneNumberPlace( phone_number),可以查询国内手机号码归属地,写公式就可以批量查询,非常方便。



