Ответы пользователя по тегу Beautiful Soup
  • Как сохранить результат работы парсера в файл .txt?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    ...
    with open("games_list.txt", "a", encoding='utf-8') as file:
    ...
    Ответ написан
    5 комментариев
  • Как спарсить с этого сайта цифры?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    По запросу https://eth.nanopool.org/api/v1/pool/recentblocks/7
    Он вам готовые данные в json отдает. Ничего парсить не надо:
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  1370    0  1370    0     0   4598      0 --:--:-- --:--:-- --:--:--  4612
    {
        "data": [
            {
                "block_number": 14384879,
                "date": 1647263052,
                "hash": "0x72d3a499e38b26a7ac6f77955a5aad3c824e39794c2b649c32f6d8ec7bcbc416",
                "miner": null,
                "status": 11,
                "value": 1.75
            },
            {
                "block_number": 14384870,
                "date": 1647262953,
                "hash": "0x1563ee582ffd0a7ed7dbf3e09b894003ae9e13cda6f12ef17428a0c1e4f1f3d0",
                "miner": "0x8bc7a21a1f3a2d3e9ae872077765a0e6f59c7822",
                "status": 1,
                "value": 2.03091155084
            },
            {
                "block_number": 14384852,
                "date": 1647262735,
                "hash": "0x7a13f3a686db6dae25f0ab8507efffdd869ad26a90e9f2c74d779957c6f9b628",
                "miner": "0x11bad4e093b8fb9f951dca8e5ec9474694ad4d6e",
                "status": 1,
                "value": 2.14722100253
            },
    Ответ написан
    2 комментария
  • Большая куча пробелов при парсинге html таблицы, как избавиться?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    import re
    data = '''ID: 3
        Каталог: Самсон
        Название категории: Бумага белая марок А, В, С
        Родители категории:                     Офис                            /      '''
    
    out = re.sub(' +', ' ', data)
    print(out)
    
    #ID: 3
    # Каталог: Самсон
    # Название категории: Бумага белая марок А, В, С
    # Родители категории: Офис /
    Ответ написан
    1 комментарий
  • Почему парсятся только первые четыре товара в озон?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Потому что остальные лежат там в json. Который оттуда можно вытянуть, - да распарсить...
    import json
    import re
    json_dump = re.search(r'JSON.parse\(\'({.*})?\'\)', src)


    618cb4dc72b5e774768476.jpeg
    Ответ написан
    2 комментария
  • Как получить значение элемента div только определенного класса?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    from lxml import etree
    import io
    
    html = '''<div class="eP0wn _2xJnS"> $192.88<span class="_2plVT">$386</span></div>'''
    
    parser = etree.HTMLParser()
    tree = etree.parse(io.StringIO(html), parser=parser)
    
    print(tree.xpath('.//div[@class="eP0wn _2xJnS"]')[0].text)
    
    # $192.88
    Ответ написан
    Комментировать
  • Как спарсить текст из класса в который вложен текст и другие классы с текстом?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Прям свет клином на BS сошелся...:
    import io
    from lxml import etree
    
    parser = etree.HTMLParser()
    
    html = '''
    <div class='user-data__about'>
    <strong>UI/UX and Product Designer<br><br></strong><strong>Портфолио<br></strong>alexandr</a> &gt; <a works</a><br>Экспертная область — дизайн мобильных приложений и web-интерфейсов.<br>Рисую дизайн для сайтов, мобильных и web-приложений. <br>Работаю с компаниями, студиями, стартапами.<br><br>Мне нравиться создавать поистине крутой продуктовый дизайн для своих клиентов. Погружаться в бизнес логику продукта и улучшать его качество. При этом развиваться как профессионал и оттачивать мастерство в любимом деле.<br><br><br><strong>Ссылки</strong><br><br><br><strong>Контакты</strong><br><strong><br>Услуги</strong><br><ul><li>UI/UX дизайн мобильных приложений и web-интерфейсов.</li><li>Адаптивный дизайн сложных CRM, SaaS(дашборды аналитики, таблицы)</li><li>Отрисовка иллюстраций.</li><li>Анимация интерфейсов.</li><li>Сотрудничество под NDA.</li></ul><br><strong>Инструменты</strong><br><ul><li>Figma</li><li>Sketch</li><li>After Effects</li></ul><strong><br>Примеры лучших работ<br></strong><br>Дизайн сайтов<br><br>Дизайн мобильных приложений<br>
    </div>
    '''
    
    root = etree.parse(io.StringIO(html), parser=parser)
    print(' '.join(root.xpath('.//text()')))


    UI/UX and Product Designer Портфолио alexandr > Экспертная область — дизайн мобильных приложений и web-интерфейсов. Рисую дизайн для сайтов, мобильных и web-приложений. Работаю с компаниями, студиями, стартапами. Мне нравиться создавать поистине крутой продуктовый дизайн для своих клиентов. Погружаться в бизнес логику продукта и улучшать его качество. При этом развиваться как профессионал и оттачивать мастерство в любимом деле. Ссылки Контакты Услуги UI/UX дизайн мобильных приложений и web-интерфейсов. Адаптивный дизайн сложных CRM, SaaS(дашборды аналитики, таблицы) Отрисовка иллюстраций. Анимация интерфейсов. Сотрудничество под NDA. Инструменты Figma Sketch After Effects Примеры лучших работ Дизайн сайтов Дизайн мобильных приложений
    Ответ написан
    Комментировать
  • Как достать из тега значение?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    import lxml.html
    root = lxml.html.fromstring(html)
    print([x.get('title') for x in root.xpath('.//td/div')])

    ['Ясно', 'Ясно', 'Облачно с прояснениями', 'Облачно с прояснениями', 'Облачно с прояснениями',
    'Облачно с прояснениями, дождь', 'Облачно с прояснениями, дождь', 'Облачно с прояснениями']
    Ответ написан
    Комментировать
  • Как редактировать код сайта с помощью python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Легко делается Селениумом:
    driver.get('http://lenta.ru')
    driver.execute_script('''
    var aTags = document.getElementsByTagName("a");
    for (var i = 0; i < aTags.length; i++) {
      if (aTags[i].innerText.startsWith("07:50Опубликованы данные")) {
        aTags[i].innerText = "Утки с Марса захватили вселенную!";
        break;
      }
    }
    ''')
    time.sleep(1)
    
    screenshot = driver.get_screenshot_as_png()

    Я взял пример посложней. В вашем случае наверняка селектор можно выбрать попроще

    5ef193d5d223f668104370.png
    Ответ написан
    1 комментарий
  • Как спарсить данные Python bs4?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    import json
    from lxml import etree
    
    str1 = '<ваша строка>'
    root = etree.fromstring(str1)
    
    data = json.loads(root.xpath('.//p')[0].text)
    print(data[0]['productPrice']['current']['value'])


    > 3290.0

    вместо lxml . аналогичным образом xpath можно найти в bs4
    Ответ написан
    Комментировать
  • Как достать строку из HTML?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Раз в тегах LXML:

    >>> stroka = """<td class="text" align="center" style="font-family: Arial, sans-serif; color:#646464; font-size: 13px; line-height: 15px; text-decoration: line-through;">
    ...                                 <span style="font-family: Arial, sans-serif; color:#646464; font-size: 13px; line-height: 15px; text-decoration: line-through;">
    ...                                   53.63 Р<!-- <span class="oldprice4">53,63</span> -->
    ...                                 </span>
    ...                               </td>"""
    >>> from lxml import etree
    >>> from io import StringIO
    >>> parser = etree.HTMLParser()
    >>> tree   = etree.parse(StringIO(stroka), parser)
    >>> tree.xpath('.//td/span')[0].text
    '\n                                  53.63 Р'


    Либо уже с очисткой результата:

    >>> tree.xpath('.//td/span')[0].text.replace('\n','').strip()
    '53.63 Р'
    Ответ написан
    Комментировать
  • Как парсить определённый кусок кода?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Тупо прочитать построчно. Строки между <style type="text/css"> и <div class="new_class2>....</div> загнать в отдельный массив, и уж его парсить. Например убрать теги регулярками, оставив текст
    Ответ написан
    Комментировать