Задать вопрос
Ответы пользователя по тегу Beautiful Soup
  • Как сделать, чтобы при парсинге bs4 как то надо нажать на кнопку "показать еще", чтобы подгрузило еще 20 постов?

    1. Использовать Selenium.
    2. Возможен вариант (но не факт), посмотреть в инструментах разработчика браузера на наличие ссылок пагинации, по которым подгружается контент при нажатии на кнопку "показать ещё", определить последнюю ссылку - и пробежаться по ним в цикле - для получения ссылок на загружаемый контент.
    Ответ написан
    Комментировать
  • У меня не получается спарсить ссылку на фото с сайта, help?

    Если необходим получить ссылку на .webp - файл из атрибута srcset тега source:

    img_url = figure.find('source')['srcset']

    К примеру код, который извлекает ссылку на картинку и скачивает файл с изображением с указанного вами сайта.

    from bs4 import BeautifulSoup
    import requests
    import fake_useragent
    import os
    
    ua = fake_useragent.UserAgent()
    headers = {"User-Agent": ua.random}
    
    url = 'https://new-science.ru/rasseivanie-almaznyh-nanochastic-v-stratosfere-mozhet-zamedlit-globalnoe-poteplenie/'
    
    def get_files(link, folder='images'):
        resp = requests.get(link, stream=True)
        filename = os.path.basename(link)
        if not os.path.isdir(folder):
            os.mkdir(folder)
        file = open(f"{folder}/{filename}", 'bw')
        for chunk in resp.iter_content(4096):
            file.write(chunk)
        return filename
    
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    figure = soup.find('figure', class_ ="single-featured-image")
    #img_url = figure.find('img')['src']
    img_url = figure.find('source')['srcset']
    
    get_files(img_url, 'images')
    
    print(img_url)
    Ответ написан
    Комментировать