我有反应网络应用程序。这是一个单一的页面应用程序,所以基本上有一个“空”HTML文件和一个JS包来完成这一切。
但为了提高SEO的能力,我正在为我的服务器上的机器人爬虫做SSR。我还区分了“桌面”爬虫和“移动”爬虫,并为每个爬虫提供了不同的布局。
我通过用户和机器人的User-Agent字符串来区分它们。
所以这些都是可能的:
REGULAR USER => GETS "EMPTY" HTML + JS BUNDLE
ROBOT DESKTOP => GETS RENDERED HTML WITH DESKTOP LAYOUT
ROBOT MOBILE =>
我对编程相当陌生,并且正在为我在网络爬虫上的论文而工作。我已经提供了一个网络爬虫,但我发现它太慢,因为它是单线程。花了30分钟才爬上1000个网页。我试图创建多个线程来执行,同时使用20个线程运行1000个网页只需2分钟。但现在我遇到了“内存堆出”的错误。我确信我所做的是错误的,即为20个线程创建了一个 for 循环。在不给出错误的情况下多线程java爬行器的正确方法是什么?说到这一点,多线程是否解决了我的问题?