Java 您能否以编程方式连接到一系列网页并解析源HTML,而不会对系统造成压力或引起危险?
我正在NLP的一个项目中工作,该项目要求我下载相当多的视频游戏评论——每个网站大约10000篇。因此,我将编写一个程序,它将访问每个URL,并提取每个页面的审阅部分以及一些附加元数据 我正在使用Java,并计划只打开一个HttpURLConnection并通过输入流读取文本。然后,关闭连接并打开下一个连接 我的问题是: 1) 让我们假设这是一个具有中到少量流量的站点:通常情况下,它们每秒接收来自普通用户的约1000个请求。我的程序是否可能对他们的系统造成过度压力,影响其他人的用户体验 2) 这些连接会一个接一个地显示为某种恶意攻击吗Java 您能否以编程方式连接到一系列网页并解析源HTML,而不会对系统造成压力或引起危险?,java,httpurlconnection,denial-of-service,Java,Httpurlconnection,Denial Of Service,我正在NLP的一个项目中工作,该项目要求我下载相当多的视频游戏评论——每个网站大约10000篇。因此,我将编写一个程序,它将访问每个URL,并提取每个页面的审阅部分以及一些附加元数据 我正在使用Java,并计划只打开一个HttpURLConnection并通过输入流读取文本。然后,关闭连接并打开下一个连接 我的问题是: 1) 让我们假设这是一个具有中到少量流量的站点:通常情况下,它们每秒接收来自普通用户的约1000个请求。我的程序是否可能对他们的系统造成过度压力,影响其他人的用户体验 2) 这些
我是偏执狂,还是这是个问题?有没有更好的方法来获取这些数据?我将访问多个网站,因此单独与网站管理员合作很不方便,而且可能是不可能的。我相信您误解了HTTP请求的工作方式。你要一页,你就得到了。。。事实上,您一次只读取一行数据流对HTTP请求没有影响,站点非常乐意一次为您提供1个页面。它看起来不会恶意(因为只有1个用户在阅读页面…完全是正常行为)。您完全可以继续执行您的计划(如果它与您描述的一样)。如果您模拟web浏览器,并以人工速度提取文本(即,通常需要人工几秒钟才能“点击”下一页,即使他们没有阅读文本),则服务器无法真正分辨客户端是什么 换句话说,只要把你的口吃限制在几秒钟一页,就没有问题了
你应该关心的另一个问题是合法性。我认为这些评论都是你没有写过的材料,也没有创作衍生作品的许可。如果你只是为了个人使用而咕噜咕噜,那没关系。如果你用它们来创造一些东西(衍生作品),那么你就是在破坏版权 如果你每秒发送1000个请求,看起来会非常恶意。每次读取输入流需要一个请求+解析(比如说3秒或其他)编辑:每秒1000个请求是我对该站点正常流量的随机猜测。为什么你需要每秒发出1000个请求?他们可能有多少视频游戏评论?如果你只是一页一页地完整阅读他们的网站,它不会引起危险信号,也不会影响任何东西,但也许我不理解你在做什么。您的输入流是1个请求。它会一直打开直到页面被读取!在这种情况下,您可能会没事,特别是如果服务器通常每秒收到1000个请求。来自同一IP的1000 rps=红旗。谢谢您提供的信息。我将确保在请求之间等待几秒钟。至于版权,这是我已经调查过的事情,但我很感激这种担心。