网页抓取:为什么你在进行网页抓取时需要代理?
到底什么是代理?
在你建立你自己的代理网络之前,你需要了解代理在网页抓取这个术语中的真正含义。只要你知道了代理是什么,你就会理解它怎么帮你绕过网站的拦截。
IP地址在上网时是必要的,没有IP地址就无法进行网络通信,而在浏览网站时,你的IP地址会传输给你正在访问的网站,这会暴露你的两个信息——你的地点和ISP,这就是为什么最近微博、知乎什么的网站要显示IP归属地的原因。
你可以把代理理解为一件“隐形衣”,它可以帮你隐藏你自己的真实IP地址。有了代理,你就可以访问那些原本被隐藏的内容,当你使用代理时,你请求访问的网页获取的将不再是你的IP地址,而是代理服务器的IP地址,这样你就可以在抓取网页数据时有更高的可用性。
听起来很不错,对吗?你想知道怎样才能使用到代理吗?答案就是——使用2808Proxy(当然也有其他友商)
代理服务器是怎么工作的?
代理服务器在你和网站之间充当了一个中间人的角色,代理服务提供商通常会从代理池中给你分配一个代理IP,这个IP将代表你处理你的网络通信。
为什么你在进行网页抓取时需要代理?
说到爬虫,基本都需要使用代理。这是因为大规模地抓取一个设计良好且保护良好的网站相当困难。发送到被爬网站的的 HTTP/HTTPS 请求可能由于各种原因被拦截。还记得你在抓取访问量最大的电商网站时收到的 4xx 和 5xx 状态码响应码吗?
这些拦截发生的原因通常是:
IP地理位置:我最喜欢的电影是指环王,但是Netflix的印度区域无法观看这部电影。现在,如果网站将你识别为试图抓取你所在地区不可用内容的人或程序,为了避免服务器过载,他们可能不允许你抓取他们的网站。如果你真的需要这些数据来为你的产品做市场调研或想知道新产品的某个功能在特定地区的运作方式,那么必须使用代理来解决问题。
IP 速率限制:几乎每个现代的网站都对它们允许的单个 IP 请求数量设置了上限。一旦超过阈值,你将收到一条报错提示,或者需要输入验证码,这样网站就能够区分人类和程序。因此,在你发送大量请求来抓取电商网站数据,进行市场调研活动之前,先考虑一下你的请求速度和IP池是否匹配。
代理的安全性如何呢?
我们与ISP之间通过合法的手续获取到IP地址,这些IP地址在ISP看来,都是以我们的名义采购的。这就是我们需要客户做实名认证流程的原因。
只要你的抓取逻辑符合网站指令、robots.txt 和站点地图,你的抓取就会一路绿灯。遵循网络抓取的最佳实践并尊重你正在抓取的网站非常重要。
代理也应该谨慎使用,并且应该慎重选择代理的类型。根据你要抓取的网站类型,你可以在IDC代理、住宅代理和其他许多代理之间进行选择。“不同类型的代理”这个词本身就十分令人困惑,下一期博客我们将详细解释这个问题。