前言
突然想扫微软的教育域名捡漏,就是在谷歌地图上搜school这样的关键字,然后把搜到的网址记下来。同理,可以用这套爬虫获取你想知道的任何公开在Google maps上的信息。
记录操作
所有的ZP操作一开始都建议直接记录操作,直到有记录不到或者重试错误的时候在改代码,不建议一上来就改代码,自己给自己添麻烦。
打开Google Maps,输个地点,比如italy,然后点Nearby搜附近,输入关键词school。
好像有点少……按f5重启看看
果然,输入完italy之后报错了,所以输入完之后还要加个回车,直接键盘模拟一个回车 。
搜出来的结果左边列表有个website的按钮,挺好,省的一个个点进去,右键搜索一下这个地球的图标
一共11个,刚好也搜出来11个,应该没问题,把这个点击图标的动作加进去。
手动整理
点击之后网站会弹出新窗口。新窗口叫popup,在里面我记一下域名就行了。用环境变量
{-Page.FullDomain-}
记录的内容放到列表里,再新建个domains的列表。完成之后把popup这个标签给关了,方便我们记录下一个。
实际上我们并不知道每页那个地球的图标会有多少个,但是好在google maps每页只有20个结果,我们就把点图标的动作重复执行21次吧,注意匹配那里要改成计数的变量。点击动作执行时我发现会先跳到谷歌的桥页上再去到目标网站,那就加个5-8秒等待时间,让浏览器跳转一下。我这用的笨办法 ,想节省时间的可以判断一下域名是不是谷歌,是就等1秒,不是就记录。
最后,这一页内容爬完,就点下一页重复之前步骤,点完下一页计数器记得清0
测试/改bug
重启一遍看看……
刚开始跑的简直完美,可是跑着跑着突然点击图标不自动跳转了。
特殊情况来了, 直接检查这个重定向的文本是否存在,存在就点第一个链接
继续跑……发现有时候似乎没点上那个地球的图标,因为激活popup窗口这个报错了,报错就让它重点一下算了
继续跑,似乎没别的bug了,最后列表加上去重和保存至文件。收工
需要这个zp脚本学习研究的可以pm我
值得学习一下