我已经使用BeautifulSoup解析了一个包含JavaScript的HTML文档,并成功将其中的JavaScript代码分离并转换为字符串。这段JavaScript代码如下:
<script>
[irrelevant javascript code here]
sources:[{file:"http://url.com/folder1/v.html",label:"label1"},
{file:"http://url.com/folder2/v.html",label:"label2"},
{file:"http://url.com/folder3/v.html",label:"label3"}],
[irrelevant javascript code here]
</script>
我试图获取仅包含在此源数组中的url的数组,如下所示:
urls = ['http://url.com/folder1/v.html',
'http://url.com/folder2/v.html',
'http://url.com/folder3/v.html']
领域是未知的IP地址,文件夹名称由小写字母和数字随机组成,并且每个文件中都有1-5个它们(通常为3)。所有恒定的是它们以
http
开头,并以.html
结尾。我决定使用正则表达式来解决这个问题(我对此还很陌生),我的代码看起来像这样:
urls=re.findall(r'http://[^t][^s"]+', document)
[^t]
在那里是因为文档中有其他以t开头的域名。我的问题是,还有另一个来自与我正在提取的urls相同域的jpg url,它与其他url一起放入了urls数组中。例如:
urls = ['http://123.45.67.89/asodibfo3ribawoifbadsoifasdf3/v.html'
'http://123.45.67.89/alwefaoewifiasdof224a/v.html',
'http://123.45.67.89/baoisdbfai235oubodsfb45/v.html',
'http://123.45.67.89/i/0123/12345/aoief243oinsdf.jpg']
我该如何只获取HTML网址?