【问题标题】:Web scraping and proxy type网页抓取和代理类型
【发布时间】:2020-03-23 02:31:35
【问题描述】:
框架:Scrapy。
我目前正在使用网络抓取工具,但与服务器断开连接。
刮板将(最终)刮掉 100k 到 150k 页面,每个页面包含 11 个字段,其中包含将被刮掉的数据。
我的想法是刮刀每月使用一次。
完成后数据库的估计大小在 200mb 到 300mb 之间(不考虑带宽)。
我不知道我是否需要为此付费代理或是否可以使用免费代理。
任何建议(或我需要的代理提供商)都会得到极大的欢迎。
【问题讨论】:
标签:
python
web-scraping
scrapy
bots
proxies
【解决方案1】:
有几种技术可以避免与您正在抓取的服务器断开连接
这是一些常见的技术
您可以添加user agents,这里是library,this page 中有关于如何使用user agents 的教程
您可以转到您的 settings.py 并取消注释 DOWNLOAD_DELAY = x
【解决方案2】:
如果没有代理,您的 IP 地址很可能会被阻止,然后即使使用代理,您也可能会遇到阻止您抓取页面的验证码。
如您所说,对于每月抓取 100K - 150K 页面,我强烈建议不要使用免费代理。免费代理的问题在于它们非常不可靠——你永远不知道谁在使用它们,它们被用来做什么,它们什么时候不再工作等等......这可能导致你的任何/所有代理被关闭或阻止,因此您的刮板在任何特定时刻都将不再工作。
付费代理当然是必经之路,尽管它们可能会变得相当昂贵,而且众所周知,一些代理提供商会使用不正当的技术来获取 IP 地址。
但是https://htmlapi.io(我的服务)可以为您弥补这一差距,并且可以免费开始使用(您甚至不需要创建帐户)。 HtmlAPI 返回您正在抓取的页面的原始 HTML 内容。它会自动为您处理轮换代理服务器、击败验证码、渲染 JavaScript 等等......
您所要做的就是调用 API 并从网页中提取您需要的数据。
从命令行尝试:
curl "https://htmlapi.io/example.com"