如果所有的评论都在不同的页面上,如何从沃尔玛的评论页面(例如: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>我不能去下一个page.How解决这个问题?
发布于 2018-10-03 13:44:08
我用watir gem.Mechanize解决这个任务,不能与JavaScript交互。
发布于 2018-10-02 08:56:02
更新的答案(发布问题编辑):
我想这可能比那简单。如果您注意到产品url,您会发现在url的末尾有某种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:
现在,您可以遍历产品,获取尾随ID,然后转到每个评论页面获取所有评论。
希望能帮上忙。
旧答案(预问题编辑):
你贴的那页对我来说是空的。但是,我看到的是元素是一个按钮,因此,您需要做的是查找表单,然后提交它。
从Clicking a button with Ruby mechanize获取的示例(万一链接由于某种原因停止工作):
# 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”。
要进行抓取,您应该保存根url,转到评审页面,获取评论,返回到根url,等等。
https://stackoverflow.com/questions/52604916
复制相似问题