По сути, мне нужно проанализировать все ссылки src = "" со всех тегов <script> в HTML.

<script src="path/to/example.js" type="text/javascript"></script>

К сожалению, bs4 не может этого сделать. Любые идеи, как я могу достичь этого?

1
Razeel 28 Май 2019 в 15:41

2 ответа

Лучший ответ
import requests
import bs4
text = requests.get('http://example.com').text
soup = bs4.BeautifulSoup(text, features='html.parser')
scripts = soup.find_all('script')
srcs = [link['src'] for link in scripts if 'src' in link.attrs]
print(srcs)
2
Razeel 28 Май 2019 в 16:11

Я бы сжал и использовал script[src], чтобы скрипт имел атрибут src

import requests
from bs4 import BeautifulSoup as bs
r = requests.get('http://example.com').content
soup = bs(r, 'lxml') # 'html.parser' if lxml not installed
srcs = [item['src'] for item in soup.select('script[src]')]
0
QHarr 28 Май 2019 в 17:07