Web 当我刮掉完整的纽约时报文章时,我如何规避机器人保护?

Web 当我刮掉完整的纽约时报文章时,我如何规避机器人保护?,web,go,web-scraping,Web,Go,Web Scraping,我试图从《纽约时报》上搜集完整的书评,以便对它们进行情绪分析。我知道并正在使用它获取书评URL,但我需要设计一个刮板来获取全文,因为API只提供了一个片段。我相信nytimes.com有机器人保护,可以防止机器人刮网站,但我知道有办法绕过它 我发现这是可行的,可以从nytimes.com获取全文,但我更愿意在Go中实现我的解决方案。我应该把它移植出去,还是这个解决方案不必要地复杂?我已经尝试过更改用户代理头,但是我在Go中所做的一切都会导致无限重定向循环错误 代码: 结果: 2016/12/05

我试图从《纽约时报》上搜集完整的书评,以便对它们进行情绪分析。我知道并正在使用它获取书评URL,但我需要设计一个刮板来获取全文,因为API只提供了一个片段。我相信nytimes.com有机器人保护,可以防止机器人刮网站,但我知道有办法绕过它

我发现这是可行的,可以从nytimes.com获取全文,但我更愿意在Go中实现我的解决方案。我应该把它移植出去,还是这个解决方案不必要地复杂?我已经尝试过更改用户代理头,但是我在Go中所做的一切都会导致无限重定向循环错误

代码:

结果:

2016/12/05 21:57:53 Get http://www.nytimes.com/2015/10/25/books/review/the-tsar-of-love-and-techno-by-anthony-marra.html?_r=4: stopped after 10 redirects
exit status 1

感谢您的帮助!谢谢大家!

您只需向客户端添加cookie即可:

var cookieJar, _ = cookiejar.New(nil)
var client = &http.Client{Jar: cookieJar}

resp, err := client.Do(req)
if err != nil {
    log.Fatalln(err)
}
// now response contains all you need and 
// you can show it on the console or save to file

机器人保护脚本不太可能发回重定向,而不仅仅是错误。他们想把你重定向到哪一页?如果能看到你的代码就好了。否则-同意David的观点。他们的响应不太可能是罪魁祸首(我相信一个成功运行的Python脚本证实了这一点),
Cookie
等。您可以从浏览器的开发人员控制台获取它们的值。在查看Python代码后,还有一个提示:它使用一组随机访问的用户代理来防止限制您。只需实现类似的方法,即使使用相同的用户代理。也许这不是唯一的先决条件,但绝对是关键条件之一。您可能需要在随后的文章重定向中添加从
/glogin
页面返回的cookies。哇,多简单的答案啊!非常感谢你,等我有了足够的声誉我会投票的。
var cookieJar, _ = cookiejar.New(nil)
var client = &http.Client{Jar: cookieJar}

resp, err := client.Do(req)
if err != nil {
    log.Fatalln(err)
}
// now response contains all you need and 
// you can show it on the console or save to file