gpt4 book ai didi

Python(BeautifulSoup) - 从 <script> 获取 href

转载 作者:行者123 更新时间:2023-12-01 02:52:33 26 4
gpt4 key购买 nike

我正在开发“视频下载器”,但我在使用 BeautifulSoup4 时遇到了一个问题。

这是 html 的一部分,我想从中获取 href:

<script src="/static/common.js?v7"></script>
<script type="text/javascript">
var c = 6;
window.onload = function() {
count();
}

function closeAd(){
$("#easy-box").hide();
}

function notLogedIn(){
$("#not-loged-in").html("You need to be logged in to download this movie!");
}

function count() {
if(document.getElementById('countdown') != null){
c -= 1;
//If the counter is within range we put the seconds remaining to the <span> below
if (c >= 0)
if(c == 0){
document.getElementById('countdown').innerHTML = '';
}
else {
document.getElementById('countdown').innerHTML = c;
}
else {
document.getElementById('download-link').innerHTML = '<a style="text-decoration:none;" href="http://s896.vshare.io/download,9999999999999999999999999999999999999999-f6192405453bf5ff3cfe41a488d8390d,5944ed28,4d948c5.avi">Click here</a> to download requested file.';
return;
}
//setTimeout('count()', 1000);
}
}
</script>
<script type="text/javascript" src="/static/flowplayer/flowplayer-3.2.13.min.js"></script>

这是我要打印的 href:

href="http://s896.vshare.io/download,9999999999999999999999999999999999999999-f6192405453bf5ff3cfe41a488d8390d,5944ed28,4d948c5.avi"

我尝试过这个,但它不起作用。

for a in soup3.find_all('a'):
if 'href' in a.attrs:
print(a['href'])

最佳答案

Beautiful Soup 可以解析 HTML 和 XML,但不能解析 JavaScript。您可以使用正则表达式来搜索此代码。
使用<a [^>]*?(href=\"([^\">]+)\")您可以匹配此代码中的所有内容:

  • <a - 是 a标签
  • [^>]*? - 可以包含 > 之外的任何字符
  • href=" - 有href
  • [^\">]+ - 具有除 " 之外的任意数量的字符和>

要从 html 中提取脚本代码,您可以使用
script = soup.find('script', {'type': 'text/javascript'})
然后解析它,使用
re.search(r"<a [^>]*?(href=\"([^\">]+)\")", script.text)
记得import re首先。

print(re.search(r"<a [^>]*?(href=\"([^\">]+)\")", script.text)[1])
# href="http://s896.vshare.io/download,9999999999999999999999999999999999999999-f6192405453bf5ff3cfe41a488d8390d,5944ed28,4d948c5.avi
print(re.search(r"<a [^>]*?(href=\"([^\">]+)\")", script.text)[2])
# http://s896.vshare.io/download,9999999999999999999999999999999999999999-f6192405453bf5ff3cfe41a488d8390d,5944ed28,4d948c5.avi

了解正则表达式。如果您要经常使用模式,请先编译它。
https://docs.python.org/3/library/re.html

关于Python(BeautifulSoup) - 从 &lt;script&gt; 获取 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com