使用node.io进行抓取时如何添加像Tor这样的代理?

时间:2013-10-07 10:02:15

标签: node.js web-scraping node.io

我正在使用node.io来构建一个web scraper但是在找到方法的时候,我已经请求了很多,这个网站阻止了我。我不知道如何添加代理,比如使用Tor来向这个网站发出请求。

3 个答案:

答案 0 :(得分:5)

关注这篇文章http://pkmishra.github.io/blog/2013/03/18/how-to-run-scrapy-with-TOR-and-multiple-browser-agents-part-1-mac/

我安装tor和polipo。 Polipo连接到Tor和Node.IO将使用http proxy polipo提供。 它看起来比我想象的简单。 并为刮刀设置代理

    var scrap = new Scraper({
    start: 0,
    limit: 5,
    count: null,
    max: config.max || 0,
    debug: true,
    wait: 3,
    proxy: 'http://127.0.0.1:8123'
});

工作正常。

答案 1 :(得分:0)

apt-get install tor

npm install tor-request - 要么 - 纱线添加torr请求

https://www.npmjs.com/package/tor-request

答案 2 :(得分:-1)

我们真的需要看看这是什么类型的网站,为什么要抓它,最好是具体的网站,以便给出建议。你知道为什么被封锁吗?

我首先想到的是你一直在抓取网站太快,并且因为这个原因你被合法地阻止了。如果您的商家只依赖于抓取一个网站(例如来自易趣的价格),那么您需要在每次点击之间延迟几秒钟。

我倾向于认为网站运营商完全有权根据自己的意愿阻止特定的抓取工具。但是,这种观点可以受到“共同利益”概念的影响,例如减少部分垄断的影响。例如,我知道有人曾经从特定行业的网站中榨取价格,然后重新格式化并转售这些数据。这些数据的作用是使整个行业更具竞争力,并降低消费者的价格。

因此,其中一个目标站点决定阻止爬虫。是否反对他们的资源被消费而没有销售机会,或者因为他们不喜欢机器人的竞争效果?很难说 - 可能两者兼而有之。刮刀现在已被人类取代 - 操作起来更昂贵,但无论如何都能得到数据。

因此,使用代理有潜在的参数,但在大多数情况下我认为它们是个坏主意。例如,如果您打算收集某人的新闻文章并在其他地方重新显示它们而不添加任何值,那么当然您应该被阻止。然而,人们划清界线的情况很复杂。


相关:my answer here提供了有关如何抓取的一些建议,包括有关避免代理和拥有易于阻止的用户代理的一般建议。也许这可能有用吗?