platonai / exotic-amazon

A complete solution to crawl amazon at scale completely and accurately.
143 stars 46 forks source link

tool/scraper 运行示例抓取代码返回结果为空 #18

Closed jarry88 closed 1 year ago

jarry88 commented 1 year ago

参考《PulsarR教程 - X-SQL》专栏教程 运行 amazon/crawer/tools/scraper 目录下的示例代码时 获取到内容为空 url连接浏览器打开正常 请帮忙指导下 问题可能出在哪里,谢谢

1679539751201
jarry88 commented 1 year ago

参考《PulsarR教程 - X-SQL》专栏教程 运行 amazon/crawer/tools/scraper 目录下的示例代码时 获取到内容为空 url连接浏览器打开正常 请帮忙指导下 问题可能出在哪里,谢谢 1679539751201

和chrome版本为111 是同一个问题,拉取最新代码后已经解决了

platonai commented 1 year ago

Great!

jarry88 commented 1 year ago

方便的话,可以再更新一下 asin_customer_hui_sync表的创建sql语句到schema-dump文件中吗 现在文件里已经没有这个表的创建部分了 谢谢

jarry88 commented 1 year ago

可以再教一下 amazon 设置收货地址这一步怎么用么,自己测试时跑ChooseCacountry或choosecouhntry时 options.conf.eventHandler(jsEventHandler) 这里 jsEventHandler的js代码 在 调用 session.load(url,options) 时 没有生效

1679625114110
platonai commented 1 year ago
  1. 建议更新一下代码,我们刚刚加入了更好的区域选择器和更好的 JDBC 持久层
  2. 建议使用 x-asin.sql, 对应 schema-dump 中的 asin_sync_utf8mb4 表
jarry88 commented 1 year ago

好的,还有一个疑问,默认的爬取任务是 遍历全品类的页面么 我自己看了一段时间没太看明白运行后爬取得顺序是怎样的, 如果我现在只是要爬取一个子类目 要在哪里改呢 我尝试了去改 site.amazon 下的txt文件 发现并没有效果

platonai commented 1 year ago
  1. 默认的爬取任务: README 中介绍的任务
  2. 爬一个子类目:CrawlApplication.injectExampleSeeds
jarry88 commented 1 year ago

商品详情页 这种 红色线框的报错能解决么 image

platonai commented 1 year ago

商品详情页 这种 红色线框的报错能解决么 image

Easy, reload the page and try again.

jarry88 commented 1 year ago

还有一个问题 我测试了一下,示例中的选择器调用的contains方法 浏览器似乎不支持,导致无法提取页面元素,能通过调用xpath方式提取元素的来解决么?

image

platonai commented 1 year ago

暂时不支持在 X-SQL 中使用 XPATH,后续pulsarR 支持后,将会支持。

---原始邮件--- 发件人: @.> 发送时间: 2023年3月27日(周一) 上午10:54 收件人: @.>; 抄送: @.**@.>; 主题: Re: [platonai/exotic-amazon] tool/scraper 运行示例抓取代码返回结果为空 (Issue #18)

还有一个问题 我测试了一下,示例中的选择器调用的contains方法 浏览器似乎不支持,导致无法提取页面元素,能通过调用xpath方式提取元素的来解决么?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

jarry88 commented 1 year ago

那现在xsql用contains提取可能失效 这种情况 有什么解决思路么 image

platonai commented 1 year ago

失效原因是什么呢?

jarry88 commented 1 year ago

不好意思 刚刚测试了一下 contains 没有失效 是我想错了 ,没拿到数据的原因还是因为 出现了需要 reload页面的问题 页面没有出现对应的信息 现在我正在看碰到reload页面 怎样判断 并执行 reload操作解决

jarry88 commented 1 year ago

测试AsinScraper.kt 为例,运行 出现 please Reload this page and try again后 尝试了几种将 reload 操作的js 添加到options的做法后,目前还没有成功 。 会一直进入这个 带please Reload的 商品详情页面

platonai commented 1 year ago

关于如何重新加载一个网页,可以参见

PulsarR 系列课程 2 - 加载参数

本质是向系统重新提交一个 (url, arguments) 对,并保证网页不会从本地存储中获取,而是立即从目标网站上下载。譬如:

首次访问:

session.load(url)

下面的代码保证系统重新访问一个网页:

session.load(url, "-i 1s -ignoreFailure")
// or better:
session.load(url, "-refresh")

具体用法见上面文档。

尽管我们可以在事件处理器中,通过 WebDriver 来重新加载一个网页,但是我们并不建议这样做,因为可能会破坏系统的部分固定流程并丢失元数据。