如果所有评论位于不同的页面上,如何抓取它们?



如何从沃尔玛评论页面(例如:http://www.walmart.com/ip/Ematic-9-Dual-Screen-Portable-DVD-Player-with-Dual-DVD-Players-ED929D/28806789(中抓取所有评论,如果它们在不同的页面上?我通过机械化(nokogiri(抓取,但它无法单击按钮(它不是表单的一部分,因此我无法提交(

<button class="paginator-btn paginator-btn-next"><span 
class="visuallyhidden">Next Page</span></button>

我无法转到下一页。如何解决这个问题?

更新的答案(发布问题编辑(:

我认为这可能比这更容易。如果你注意产品网址,你会看到网址的末尾有某种ID:

http://www.walmart.com/ip/Ematic-9-Dual-Screen-Portable-DVD-Player-with-Dual-DVD-Players-ED929D/28806789

如果您获得该 ID,则可以获取评论根页面 (https://www.walmart.com/reviews/product/( 并连接产品的 ID:

https://www.walmart.com/reviews/product/28806789

现在,您可以遍历产品,获取尾随ID,然后转到每个评论页面以获取所有评论。

希望它有帮助。

旧答案(问题前编辑(:

您发布的页面对我来说是空的。但是,我看到的是该元素是一个按钮,因此,您需要做的是查找表单,然后提交它。

示例取自使用 Ruby 机械化单击按钮(以防链接由于某种原因停止工作(:

# get the form
form = agent.page.form_with(:name => "my-form")
# get the button you want from the form
button = form.button_with(:value => "Search")
# submit the form using that button
agent.submit(form, button)

感谢@flaviu和@serabe所述问题。

要进行抓取,您应该保存根网址并转到评论页面,获取评论,返回根网址,依此类推。

我用 watir gem 解决了这个任务。机械化不能与JavaScript交互。

最新更新