PlatonAI

Results 89 comments of PlatonAI

> Of course, our program will not crawl the entire amazon.com by default, which would be a very huge project. To start a real world data project, you need to...

使用-resource参数将激活单一资源采集模式,这种模式仅适用于单一资源,譬如静态网页、Json文件或者API。 针对在 amazon 这样的成熟站点,我们并不建议使用单一资源模式,因此出现各种意料之外的问题属于意料之中。 具体参考:https://www.zhihu.com/answer/2738050570

> 1、失败三次就直接失败是框架的机制吗?还是说可以通过某些设置解决 是。 参看 LoadOptions.nMaxRetry ``` /** * Retry to fetch at most n times, if page.fetchRetries > nMaxRetry, * the page is marked as gone and do not fetch...

Which JDK version you are using? JDK 11 is the primary supported version. Good luck!

> 请贴一下关键错误信息。

你这看上去像是 JDK 8,JDK 8 缺少这个方法,JDK 11 是有这个方法的。 `String encode​(String s, Charset charset)` 参考: 1. [JDK 8's URLEncoder](https://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.html) 2. [JDK 11's URLEncoder](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URLEncoder.html)

你 MongoDB 启动没有呢?

之前的评论不准确。删了。

估计是遇到反爬了。Amazon.com 如果检测到一个全新的浏览器一上来就开始搜索,它就会认为该访问是爬虫。 解决方法:在 onBrowserLaunched 事件中访问 referer 页面,快速打开快速关闭即可,让 amazon.com 看到合理的访问轨迹。 ``` val hyperlink = ListenableHyperlink(url) val be = hyperlink.event.browseEvent be.onBrowserLaunched.addLast { page, driver -> val warmUpUrl = "https://www.amazon.com/" logger.info("Browser launched, warm...

一个网页有三个url: 1/ 数据库中的 key,也就是 WebPage.url,通常需要经过规范化,可以看 AmazonUrls 类 2/ WebPage.href,指网页中通过a标签提取出来的链接,它表示访问这个链接“应当能”打开目标网页 3/ WebPage.location,表示打开网页后浏览器中最终呈现的地址,它可能是经过跳转的 当你要访问一个网页时,系统内部以 WebPage.url为准,所以你的匹配规则应当匹配该链接,当你收集到一个链接准备采集之前,应当对其进行规范化。 当系统最终将一个网页采集请求发送到浏览器时,它优先使用WebPage.href,它可能带有随机参数,不是那么漂亮,但是它应当代表一个真人网上冲浪时点击一个链接时访问的实际链接。 ---Original--- From: ***@***.***> Date: Mon, Mar 20, 2023 10:01 AM To: ***@***.***>; Cc: ***@***.***>; Subject: [platonai/exotic-amazon]...