3

爬虫出海Step by Step(一)

 2 years ago
source link: https://www.kingname.info/2022/04/13/global-crawler-1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

爬虫出海Step by Step(一)

发表于 2022-04-13

|

分类于 爬虫

|

评论数: 0

上周的文章《一日一知:国内爬虫开发人员的未来》发布以后,很多同学私信我表示对爬虫出海很有兴趣,希望我能详细介绍一下。因此,我准备用几篇文章来介绍爬虫出海的具体做法细节和注意事项。

今天我们的话题是,如何规避法律风险。

如果你是个人开发者,那么你直接写爬虫爬就可以了。不会有人跨国来抓你的。

如果你是小公司,并且在海外没有分公司,那么你也可以像个人开发者一样直接爬。

如果你是大公司,关注自己的国际声誉;或者你的公司在海外有分公司,那么你需要注意如下的几个问题。

很多网站几乎没有反爬虫机制。你直接使用requests.get(url)就能获取数据,连headers参数都不需要加。网站反不反爬虫是网站的事情,但作为爬虫,把自己伪装成正常的浏览器请求,并使用代理IP是基本的要求和素质。

否则,等有一天有人在推特上@你的公司,并附上了Nginx的IP记录,那你的公司可就倒了大霉了。

GDPR或者其它相关法律条文

GDPR是欧洲的数据保护法规,它要求你不能在未经允许的情况下擅自收集欧洲用户的个人信息。在欧洲运营的互联网公司,数据也不能离开欧洲。

Google和Facebook曾经都因为违反了GDPR而遭受上亿欧元的罚款。如果你的公司在欧洲有分公司,就需要特别注意这一点,否则你将会面临巨额罚款或者被查封公司。

这种情况下,如果你要做爬虫,建议是爬哪个国家的数据,就在那个国家本土部署爬虫。通过Aws或者GCP购买那个国家的服务器,把爬虫部署到服务器上面。同时,Hive/Hue等等数据分析相关的服务,也需要部署到对应的国家。

如果你能招聘外籍员当然最好,只让那边的员工来接触数据。如果你需要让中国的员工去分析数据,那么你需要准备一个VPN,把中国的电脑和爬虫服务器、数据分析服务器组建起一个虚拟的局域网,然后让这边的员工连上去进行操作。

如果最后分析以后的数据,会以网页的形式呈现给客户,也需要把网站搭建在对应国家的服务器上,然后客户通过VPN连上去查看。

如果某个大洲有多个国家都需要爬取,你也可以在Aws或者GCP上购买这个洲的服务器,而不是具体每一个国家。例如你要爬英法意德的数据,你不需要在四个国家各搭建一套系统。整个欧洲共用一套就可以了。

另外,就是无论如何,不要涉及用户个人信息。

数据不只有一家

国外有些网站的反爬虫特别强,例如Facebook,封账号封得非常厉害。又比如App Store的App评论和星级,也不太好直接抓。但是,已经有一些第三方网站使用某种我们不知道的方法,抓了他们的数据并在自家网站公布了,那么,你可以去抓这些第三方网站的数据。

有些网站开放了API,申请他们的API以后,直接就能根据文档调用API拿到数据,例如推特。不过现在推特已经不批准新API的申请了。我们公众号粉丝群里面有一个同学手上还有一个获得了开放API权限的账号,很多人找他借来爬数据。

还有很多网站,直接开放了全文的RSS,你直接解析RSS地址就能拿到最新的内容了。

善于利用网站的多个版本

欧美这些注重政治正确国家,会额外关注残障人士和老年人的网页使用体验,并设置了专门的页面。当主站特别难爬的时候,找到他们给残疾人设计的页面或者老手机设计的页面,爬起来就很容易。

例如Facebook主站非常难爬,但是如果访问https://mbasic.facebook.com/就非常简单,这个版本的页面是给2G老手机使用的,页面上没有JavaScript,所有请求都是通过GET或者POST的参数实现的。

如果你是国内的一家大公司,担心做海外爬虫影响公司的声誉,那么你可以在目标国家开个分公司来爬,或者找对应国家的爬虫外包团队。数据爬好以后,就存在那个国家的服务器上。国内的数据分析员工通过VPN连上去以后,远程分析数据。不要尝试把数据拉回国内。即使加密以后传回国内也不行。

另外,一个数据有多种抓取方式,一种方式不行,就多试几种,总会有一个意想不到的渠道获取数据。

下一篇文章,我们来聊聊怎么寻找数据源。

谢乾坤 | Kingname wechat
第一时间获取最新文章更新,请订阅我的微信公众号:未闻Code

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK