说明
导师给我布置了一个任务,对一个网站的城市做一些统计,将这个网站上的城市的经纬度信息提取出,然后绘制在百度地图上。要是为数不多的城市还好,但对于这种存在N个城市的 ,且这些城市的经纬度信息在第三级网站上才能找到,这样的话人工去完成又枯燥又耗时。
这个网站是维基百科关于自行车公共站点的统计介绍
这里可以看到城市这一列是有超链接的,通过点击这个城市的超链接,进入到第二级网站上:
我的导师没事就喜欢教我一个Python案例,说要激发我的学习兴趣,搞的我现在没看到Python我就浑身没劲,现在手上也有一些Python的资料视频加qun 227- 435 -450 获取资料哈~
比如上面是我点击第一个城市的跳转,我们需要的信息在右上角,但是真正的经纬度的坐标其实在这个右上角的超链接里。继续点击:
解决办法
对这种重复性的劳动,想到了利用之前自己研究过一段时间的爬虫来解决。可以参照一下之前的对于电影影评的提取和分析。
一
我们的工作,首先最初的母网站是https://en.wikipedia.org/wiki/List_of_bicycle-sharing_systems#Cities
二
在网站上找到城市表,在此基础上进行超链接的两次点击进入。找出网站源代码和需要的城市表 。
这里的代码输出是:
刚刚好,就是找到的源代码,完全符合。
三
我们是要的a标签下的链接,才能再次进入网站。
四
输出:
五
第一个方法,目的在于根据城市链接,进入到第二级网站,找到a标签,如图所示:
第二个方法:找到经纬度
说明:处理找到网页源代码中的小技巧
需要的信息数据所在的位置,和所在的标签种类以及id等信息,可以采用鼠标右键的检查,找到源代码。
六
已经实现三层的网站数据链接爬取后,将所有城市的url循环遍历就好了。
然后就可以看到数据全部存在citys_url_data的json列表里面,最后如果有需要将这个citys_url_data写入到json文件中。