使用Javascript获取网页文本

使用Javascript获取网页文本,javascript,html,beautifulsoup,Javascript,Html,Beautifulsoup,python库BeautifulSoup具有一个名为get_text()的函数,该函数可以获取解析的HTML页面,例如: 并从中提取所有文本,从而将其转化为: 下面是函数可以执行的另一个示例: 如果给出以下条件: <span id="sm_flash_225" onclick="sm_flash_process('bail', this,1)" onmouseover="sm_flash_add('bail', this, 1);" onmouseout="sm_flash_remove(

python库BeautifulSoup具有一个名为get_text()的函数,该函数可以获取解析的HTML页面,例如:

并从中提取所有文本,从而将其转化为:

下面是函数可以执行的另一个示例:

如果给出以下条件:

<span id="sm_flash_225" onclick="sm_flash_process('bail', this,1)" onmouseover="sm_flash_add('bail', this, 1);" onmouseout="sm_flash_remove('bail', this, 1);">bail</span> 
试试这个:

fetch("test.html")
  .then(data => data.text())
  .then(text => {
    let div = document.createElement("div");
    div.innerHTML = text;
    console.log(div.textContent);
  });

更安全的做法是不要将其他站点的实时HTML(和JS)插入到您自己的站点中。请改用DOMParser:

fetch(“https://cors-anywhere.herokuapp.com/stackoverflow.com", )
.then(response=>response.text())
。然后(responseText=>{
const responseDocument=(新的DOMParser()).parseFromString(responseText,'text/html');
log(responseDocument.head.textContent);
log(responseDocument.body.textContent);

});谢谢,这起作用了。你能解释一下你的代码是做什么的吗?@Roymunson,只是html提供的一个接口,你可以通过document.createElement创建一个html元素,通过innerHTML设置它的内容,并通过ele.textContentQuick获得文本。你说不将另一个站点的实时html插入你自己的站点更安全。但先升路的解决方案是否真的涉及到将html插入网站?也就是说,
document.CreateElement(“div”)
是否真的将一个
div
插入到一个活动站点中?这些都是chrome/firefox web扩展的代码,所以我不认为我实际上在修改任何网站。如果这个问题很愚蠢,我深表歉意——我对Javascript还比较陌生。
fetch("test.html")
  .then(data => data.text())
  .then(text => {
    let div = document.createElement("div");
    div.innerHTML = text;
    console.log(div.textContent);
  });