查看原文
其他

干货分享 | 网络爬虫这么危险,还要学吗?

The following article is from 小猿猴GISer Author 小猿猴GISer

很多时候,我们需要通过爬虫获取互联网数据《常用互联网地图数据》,但是有一句很流行的玩笑话爬虫学得好,牢饭吃到饱”。这让我有了思考,网络爬虫这么危险,还要学吗?我也学过网络爬虫,学的很肤浅,只知道用requests的get方法,连beautifsoup和Scrapy爬虫框架都不知道怎么用,可以说很low了。不过,我发现网络爬虫确实有个好处,就是对Web网页知识的了解加深了。
我是在中国大学MOOC上学的这门课,可以作为加深python基础知识学习的提高手段。https://www.icourse163.org/learn/BIT-1001870001

我很认真的学习了这么课,了解了网络爬虫的“盗亦有道”我们要遵守robots协议,比如百度地图的robots.txt(https://map.baidu.com/robots.txt)

User-agent: *

Disallow: /

基本上就是再说任何人不能爬取任何东西,那还学爬虫干啥?很多网站都会有开放的或者收费的数据API,就像百度、高德地图API那样。既然用了人家的API,就得遵守他们的规矩。不守规矩,就会像他们的服务条款中写的那样受到法律的制裁。严格注册使用,不要超出流量限制,听说现在一旦超出限额会被封号的。(这也等于说使用F12的讨巧行为不可取,浏览器F12的用法),老老实实按照api文档写代码才是正道(空间范围、时间间隔、数据量都不要超出界限)。例如我以前写的一个获取高德地图上海市行政区划的python代码,完全按照api文档的要求来。
import pandas as pdimport requestsr =requests.get("https://restapi.amap.com/v3/config/district?keywords=上海&subdistrict=0&key=yourkey&extensions=all")s=r.json()poly=s["districts"][0]["polyline"]p=poly.split("|")x=[]for i in range(len(p)): a=p[i].split(";") for j in range(len(a)): x.append([a[j].split(",")[0],a[j].split(",")[1],i])c = pd.DataFrame(x)c.to_csv('xzqh.csv')


以上说的都是爬虫受到的限制和法律责任我们学习爬虫主要是为了减少重复性工作。虽然网站提供了数据API,但是我们要使用,总不能自己手动去处理,一条一条数据提出来,这时候,就得用网络爬虫来解决了,但是归根结底,爬虫的问题就是Python的问题。只有写好了python,才能用好爬虫,看懂github上的代码,我在之前的文章有提到《干货|GISer如何学Python》《世上最简单的Github入门教程》。

所以我认为,网络爬虫没必要学,Python才有必要学!!!

github上资源那么多,干嘛要费劲自己写,我在flickr地理标记照片的时候,曾自己对着api写代码,

非常难用。在github上找别人写好的,既轻松又准确。但是我们了解了网络爬虫以后,修改起来会更容易写,从这个角度看,基础的requests的get方法还是要看一看的。


兴趣是最好的老师,工作和生活中的问题也会推着你前进。网络爬虫要不要学,还要看你有没有兴趣,有没有需要。最后一句提醒,千万不要把网络爬虫当成是挣钱的工具,要把爬虫用到正道上来,比如科学研究。


经原公众号授权转载

文章仅代表原公众号观点,与本公众号无关,版权归原公众号所有

原文标题:网络爬虫这么危险,还要学吗?

责任编辑:魏雪馨

审编:鲁嘉颐

终审:顾伟男 田巍 梁龙武

猜你喜欢

1.招贤纳士 | 临沂大学资源环境学院2020年高层次人才招聘

2.干货分享 | 地理信息系统资源列表,值得收藏!

3.干货分享 | JGR Atmospheres: 最新极端气温和极端降水数据集

4.干货分享 | 【GIS基础】基本空间分析工具:缓冲区、网络分析、相交分析、密度分析

扫描二维码,关注我们

都看到这里了,点个【在看】再走呗~

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存