在我使用Jsoup连接到Instagram页面后,我想从一个标记中提取整个外部html。不知怎的,当我检查页面并从标记中复制外部html时,我得到了大量的行,而我使用Jsoup只得到了很少的行(不知怎的,嵌套标记的html被忽略了)任何帮助都将感谢如何获得整个html!
代码:
Document doc = Jsoup.connect("https://www.instagram.com/myUsername").get();
Element link = doc.selectFirst("span");
String linkOuter = link.outerHtml();
System.out.println(linkOuter);
输出:
<span id="react-root">
<svg width="50" height="50" viewbox="0 0 50 50"
style="position:absolute;top:50%;left:50%;margin:-25px 0 0
-25px;fill:#c7c7c7">
<path d="M25 1c-6.52 0-7.34.03-9.9.14-2.55.12-4.3.53-5.82..." />
</svg></span>
编辑:我希望保存span标记的整个HTML(我希望HTMLUnit/JSOUP的结果与我右键单击标记时的结果相同,单击edit HTML,然后右键单击->复制外部HTML!
不幸的是,Instagram是一款用javascript框架React构建的Web应用。这意味着最终的HTML不是从服务器返回的,而是在页面的初始加载之后由浏览器客户端的javascript生成的。
要查看react生成的HTML,您需要评估从服务器返回的javascript代码。jsoup
是简单的HTML解析器,不能计算js,因此必须使用另一个库,例如HTMLUnit。
例如:
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(true); // enable javascript
webClient.getOptions().setThrowExceptionOnScriptError(false); //even if there is error in js continue
HtmlPage page = webClient.getPage(new URL("https://www.instagram.com/myUsername"));
webClient.waitForBackgroundJavaScript(5000); // important! wait when javascript finishes rendering
page.getElementById("react-root");
我想使用jsoup从网页中提取内容。这些值在内部标签中,如何提取这些值? 例如 我想提取锚点标签中的内容首页*将如何做到这一点?
我去一个标签名
你好,我试图使用JSoup提取嵌套DIV标签中的span标签。下面的代码只是较大代码的一个片段。 我试图提取最后一个SPAN标签中的文本(多伦多C08,莫斯公园,多伦多和120-21-S) 我已经成功地解析了文档的其他部分,但是,我似乎无法隔离这些跨度。代码片段来自一个更大的页面(整页)。我可能使用了错误的方法,但下面是我为捕获父DIV之间的跨度所做的工作(结果在帖子顶部)。 所以现在我有了第一个
我在stackoverflow进行了彻底的搜索,但没有找到合适的解决方案。我正在清理一个遗留的网站,我想提取所有的标签和输入名称。旧网页的html格式如下所示 我想使用python提取输出,并将beautifulsoup作为 我确实尝试了findall方法,但失败了,因为我需要标签(文本)和输入标签名称一起,有没有解决方案与标签文本的多个html标签报废?谢谢 我是一个新的网页刮削和这里的代码,我
问题内容: 我正在尝试使用Python将多个XML文件合并在一起,并且没有外部库。XML文件具有嵌套元素。 样本文件1: 样本文件2: 我想要的是: 我试过的 从这个答案。 我得到什么: 希望您能看到并理解我的问题。我正在寻找适当的解决方案,任何指导都将是美好的。 为了解决这个问题,使用当前的解决方案,不会合并嵌套元素。 问题答案: 您发布的代码正在执行的操作是组合所有元素,而不管是否存在具有相同
我想在每个文本之后使用jsoup提取一个文本。有没有办法选择它? 示例代码如下: 当它完成时,它会创建自动id示例id=123