簡體   English   中英

如何使用美麗湯獲取功能<script> tag?

[英]How to use Beautiful Soup to get function in <script> tag?

在給定的.html頁面中,我有一個腳本標簽,如下所示:

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();
}
</script>

如何使用Beautiful Soup在.open函數中獲取第二個參數?

這種情況是“ ajax_info.txt”

BeautifulSoup並非為此目的而構建。 它用於解析html而不是JavaScript或任何其他網絡語言。

更簡單的方法是使用無頭瀏覽器,例如PhantomJSSelenium

您也可以使用JavaScript的解析正則表達式中的說明,或者沒有正則表達式這個帖子


編輯:

例:

我不知道如何使用無頭瀏覽器,雖然這可能是最好的方法,但是我知道足夠的正則表達式來創建一個快速而骯臟的示例,該示例將適用於您在上面列出的示例。

 b = """function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); }""" # Get value between <script></script> using BeautifulSoup and store in "b" import re a = re.compile('"GET", "[\\S ]+"') c = a.search(b).group() print(c[8:-1]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM