http://support.xbox.com/en-us/contact-us使用 javascript 创建一些列表。我希望能够解析这些列表的文本。所以对于上面的页面,我想返回以下内容:
Billing and Subscriptions
Xbox 360
Xbox LIVE
Kinect
Apps
Games
在注意到它是使用 javascript 生成之前,我尝试使用 JSoup 一段时间。我不知道如何解析页面以获取其 javascript 生成的内容。
我从哪里开始?
http://support.xbox.com/en-us/contact-us使用 javascript 创建一些列表。我希望能够解析这些列表的文本。所以对于上面的页面,我想返回以下内容:
Billing and Subscriptions
Xbox 360
Xbox LIVE
Kinect
Apps
Games
在注意到它是使用 javascript 生成之前,我尝试使用 JSoup 一段时间。我不知道如何解析页面以获取其 javascript 生成的内容。
我从哪里开始?
您始终可以导入整个页面,然后在页面上执行字符串分隔符(使用 return 等)并查找包含信息的字符串,然后返回您想要的字符串并从该字符串中提取部分。那是肮脏的做法,不确定是否有干净的方法。
您需要使用像Cobra这样的 HTML+JavaScript 库。它将解析 HTML 中的 DOM 元素并应用由 JavaScript 引起的任何 DOM 更改。
我不认为文本是由 javascript 生成的......如果我禁用 javascript,可以在这个位置的 html 中找到这些选项(一个 jquery 选择器,因为它比在没有启用 javascript 的情况下弄清楚 xpath 更容易手写:))
'div#ShellNavigationBar ul.NavigationElements li ul li a'
无论直接回答您的查询,您都必须在文档范围内评估 javascript,我预计这在 Java 中会相当复杂。您会更幸运地识别生成相关内容并直接解析它的 javascript 文件。