【发布时间】:2018-02-08 20:17:37
【问题描述】:
这就是 CSS 的样子
<ul class="offers general">
<li class="offer ">
<div id="offer-detail-384" class="hide" style="display:none">
<div> Text I want to scrape is here </div>
我已经成功地抓取了其他网站,但是有了这个,它给了我在页面上任何地方都找不到的文本。这是一个包含产品列表的网站,我正在返回一个我在网站上任何地方都找不到的产品列表。真是奇怪……
代码是
@browser = Watir::Browser.new:phantomjs
@browser.goto "https://Groceries.com/offers"
@products = @browser.lis(class: "offer")
@products.each do |x|
Groceries.create(title: x.divs[13].text, value:
x.divs[14].text)
end
因此,当我尝试检索数据时,我会得到像 Nutrigrain 条这样的项目,但当我只是查看我正在抓取的网站时,页面上的任何地方都找不到 Nutrigrain 条。我已经仔细检查了链接,我已经在网络上抓取了其他网站,所以我有点知道如何做到这一点..
【问题讨论】:
-
我不明白你的问题。您所说的“它给了我在页面上找不到的文本”是什么意思?你想检索什么,而你得到了什么?你能分享你的抓取代码吗?
-
添加了代码和描述。感谢您抽出宝贵时间回复。
-
您可能希望定位
div元素并排除任何具有hide类的元素。 -
我尝试直接定位包含我想要的文本数据的 div,但这也不起作用。退还我在网页上找不到的产品。
-
它也可能会根据您的 cookie 或位置等更改产品。在我的抓取结果与我在本地/在我的浏览器中看到的结果大不相同之前,我不得不抓取网站,结果证明是因为我正在测试的服务器在乔治亚州出现故障,而我正在运行在华盛顿这里。我还抓取了一些网站,当浏览器检查我的结果时,我在隐身窗口/我的刮刀与我的普通窗口中发现了不同的结果......很难说不知道它是什么网站等等
标签: html css ruby-on-rails ruby watir