【发布时间】:2015-09-14 16:36:52
【问题描述】:
我正在尝试抓取网页,但由于某种原因,我似乎只能横向移动到页面上的某个点。我已将整个文档打印到文件中,以确保我需要的元素在那里(我知道有时某些代码由于 JavaScript 等而无法捕获)。将 html 代码输出到文本文件后,我能够验证 JSoup 是否成功捕获了我需要的数据。
我已尝试增加超时和 maxbody 大小以确保其不受限制。
谁能指出我遗漏了什么?
doc = Jsoup.connect("https://www.mississaugahardware.com/products?keyword=dcf680n1&mainc=")
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.maxBodySize(0)
.timeout(600000)
.get();
Elements info = doc.select("span[class=PriceListModeBig");
我能够为页面顶部附近的元素提取值,但不能再往下。
【问题讨论】:
-
你的选择器是错误的......当你使用类时(你可以使用你正在做的方式,但这不是常见的方式)你必须使用这个
span.PriceListModeBig。除此之外,您没有关闭括号。 -
我尝试在您的代码示例中抓取网站,我修复了选择器,但仍然一无所获。所以我猜测该网站正在异步加载产品。如果是这种情况,您将无法使用 jsoup 抓取它。
-
@EricMartinez 我得到了同样的结果。当我将 doc 的整个值发送到输出文件时,我能够看到类和其中的值。这不意味着它正在正确加载它吗?
-
我不能肯定地告诉你,你说的很有道理,但显然不是这样。看到这个线程stackoverflow.com/questions/20633294/…
-
如果您的问题得到完全解决,请考虑接受我的回答。