Я пишу веб-скребок, используя Python bs4. Я пытаюсь найти первое изображение с определенным атрибутом 'data-a-dynamic-image'. Пока у меня есть код ниже, и он работает. Но я бы предпочел использовать только find()
, а не find_all
. Это потому, что меня интересует только первый элемент на странице с этим атрибутом. Я не хочу использовать find_all и тратить время на просеивание всей веб-страницы.
def siftImage(soup):
try:
for line in soup.find_all('img'):
if line is not None:
if line.has_attr('data-a-dynamic-image'):
return line['src']
except:
return 'No Image '
Эта вторая функция, которую я сделал, будет возвращать только тот результат, который мне нужен, если первое изображение на странице — это изображение, которое я хочу, иначе она ничего не вернет. Но у него есть время выполнения, которое я ищу.
def siftImageTwo(soup):
try:
line = soup.find('img'):
if line.has_attr('data-a-dynamic-image'):
return line['src']
except:
return 'No Image '
Я ищу способ использовать функциональность верхнего сценария с синхронизацией нижнего сценария.