Ответы пользователя по тегу Парсинг
  • Как достать из этой строки информацию?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    import json, re
    
    data = '''jQuery18108711886946074578_1659960174576({"allowRetry":false,"cachedTime":"2022-08-08 20:34:35","destCountry":"Russian Federation","destCpList":[],"errorCode":"REFRESH_NOT_MODIFIED","errorMsg":"主动刷新未变更","hasRefreshBtn":false,"mailNo":"9988000xxxxxxx","originCountry":"Russian Federation","originCpList":[],"shippingTime":0.0,"showEstimateTime":false,"showQuickEvaluate":false,"status":"OWS_WHCOUTBOUND","statusDesc":"Left warehouse","success":false,"syncQuery":false})'''
    json.loads(re.match(r'.*\((\{.*\})\)', data).group(1)).get('statusDesc')
    
    # Left warehouse
    Ответ написан
    Комментировать
  • Большая куча пробелов при парсинге html таблицы, как избавиться?

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

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    В этой строке
    for block in soup.find_all(class_=re.compile("OrderSnippetContainerStyles"))

    если в soup.find_all(class_=re.compile("OrderSnippetContainerStyles")) прилетит пустое множество, то task_stack не инициализируется, поскольку тело цикла не выполнится, и вылетит эта ошибка.
    Вот в эту сторону и копайте.
    Ответ написан
  • Как реализовать систему,которая будет брать данные с сайта?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Пишете скрипт на любом из распространенных языков программирования, реализуя заданную логику.
    Либо отдаете на фриланс где сделают то же самое за деньги.
    Ответ написан
    Комментировать
  • Насколько законно парсить каталог товаров магазина?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Каталог товаров является публичной офертой неопределенному кругу лиц. Соответственно - вы можете с ней ознакомиться в том числе парсингом каталога.
    Единственно нужно знать меру - если вы массой своих запросов валите сервер, - вы затрудняете доступ других к ее ознакомлению, и можете нанести прямой ущерб владельцу. Скажем другие не могут зайти в каталог или оплатить товар, пока ваш классный многопоточный скрипт грузит сервер...
    А эти деяния могут подпадать вплоть до норм уголовного кодекса.
    Ответ написан
    Комментировать
  • Как спарсить текст из данной строчки?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Как-то так:
    import io
    import requests
    from lxml import etree
    
    for url in links:
        info = requests.get(url)
        tree = etree.parse(io.StringIO(info.text), etree.HTMLParser())
        rarity = tree.xpath('.//*[@id="largeiteminfo_item_type"]')[0].text
        print(rarity, url)

    P.S.: Внимательней читайте документацию чтобы ПОНИМАТЬ что вы делаете...
    Ответ написан
  • Какую библиотеку использовать для парсинга большого количества страниц?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Вы бы определились - с чем именно проблемы могут возникнуть в вашем случае.
    Толку от быстрой библиотеки парсинга страницы не будет если сайт вам страницу полминуты отдавать будет...
    Толку от обычного подхода парсинга не будет, если страницу для получения данных на стороне броузера рендерить надо будет или какие-то действия выполнять.
    Толку от большого количества запросов в единицу времени не будет, - если сервер будет в бан отправлять за частые запросы.
    Ну и т.п.... Так что правильно вам говорят - беритесь уже хоть за что нибудь, да решайте проблемы по мере поступления.
    Ответ написан
    Комментировать
  • Как отсортировать словарь по значениям, когда значения это словарь с это тюплами, которые являются строками?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Если нужно весь словарь целиком отсортировать - по data.keys() пробегитесь... :
    import ast
    data = {
        'Action': [...],
        ...
    }
    sorted(map(ast.literal_eval, data['Action']), key=lambda x:(x[1], x[0]), reverse=True)
    
    # [('Terminator Genisys', '2015'),
    #  ('Terminator Salvation', '2009'),
    #  ('Terminator 3: Rise of the Machines', '2003'),
    #  ('Terminal Velocity', '1994'),
    #  ('Terminator 2: Judgment Day', '1991'),
    #  ('Terminator, The', '1984')]
    Ответ написан
    Комментировать
  • Почему не выходит спарсить блок?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    А кто вам внушил что парсинг динамических сайтов - это простое занятие?
    С помощью requests вы вытягиваете только шаблон по сути, в котором динамически с помощью javascript рендерятся нужные данные, которые к тому же еще и по вебсокету подтягиваются.
    Чтобы попытаться отрендерить и вытянуть эти данные - вам нужны инструменты вроде Selenium и более глубокие познания того что происходит в броузере
    Ответ написан
    1 комментарий
  • Аналог wget с JavaScript, под Линукс?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    npm install nightmare

    browser.js
    let url = process.argv[2]
    var Nightmare = require('nightmare');
    var nightmare = Nightmare({show: false,webPreferences: {}})
    
    nightmare
     .goto(url)
     .viewport(1600, 900)
     .wait(5000)
     .evaluate(function() {
         return document.documentElement.innerHTML;
     })
     .end()
     .then(res => {console.log(res)});


    node browser.js https://google.com
    Ответ написан
    Комментировать
  • Почему парсятся только первые четыре товара в озон?

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


    618cb4dc72b5e774768476.jpeg
    Ответ написан
    2 комментария
  • Как работать с списком python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    B = ['Что-то\n','Что-то там\n']
    
    for line in B:
        print(line.replace('\n',''))
    
    # Что-то
    # Что-то там

    ну либо просто
    B = ['Что-то\n','Что-то там\n']
    
    print(''.join(B))
    
    # Что-то
    # Что-то там
    Ответ написан
    3 комментария
  • Как упростить запрос парсинга на Питоне?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Как вариант:
    collected_data = [
      {'pattern': ['#c', 'c#'], 'result': []},
      {'pattern': ['java'], 'result': []}
    ]
    
    ...
    
    for name in vacancies_names:
        for data in DATA:
            if any([x in name.get_text().lower() for x in data['pattern']]):
                data['result'].append(text)
                continue

    В конце collected_data обогатится спарсенными данными

    Если еще нужно похожие отлавливать с опечатками - типа "iava" вместо "java" - то посмотрите про расстояние Левенштейна
    Ответ написан
  • Как распарсить списки в строке?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Если правильно понял - то вот более гуманный способ:
    import ast
    
    data = '''[
      [1, "Иван Иванович Иванов", "Иванов И.И."],
      [2, "Макар Макарович Макаров", "Макароы М.М."]
     ]'''
    res = ast.literal_eval(data)
    # [[1, 'Иван Иванович Иванов', 'Иванов И.И.'], [2, 'Макар Макарович Макаров', 'Макароы М.М.']]
    type(res)
    # <class 'list'>
    Ответ написан
    Комментировать
  • Парсинг XML-файлов скриптом. Нужно вывести нужную информацию в одну строку, каким путём это проще сделать?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    На python стандартными библиотеками:
    data = '''<fireparams>
        <fire>
          <param name="extra_ammo" value="120" />
          <param name="ammo_type" value="bullet_ar" />
          <param name="bullet_chamber" value="1" />
          <param name="helper_tp" value="weapon_term" />
          <param name="helper_fp" value="weapon_term" />
          <param name="nearmiss_signal" value="OnNearMiss" />
        </fire>
    </fireparams>'''
    
    import xml.etree.ElementTree as ET
    
    print('|'.join([f"{x.get('name')}={x.get('value')}" for x in ET.fromstring(data)[0]]))

    extra_ammo=120|ammo_type=bullet_ar|bullet_chamber=1|helper_tp=weapon_term|helper_fp=weapon_term|nearmiss_signal=OnNearMiss
    Ответ написан
    Комментировать
  • Python парсер не работает с прокси что делать?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Использовать другой прокси
    Ваш пример с другим, - рабочим прокси - успешно отработал у меня.
    Ответ написан
    6 комментариев
  • Python selenium webdriver находит не все элементы на странице. Как это исправить?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Прокрутить страницу и прокликать еще?
    Ответ написан
    1 комментарий
  • Библиотека для python для создания html файла локально?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ответ написан
    Комментировать
  • Как спарсить номер статьи из гиперссылки?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Можно и без BS обойтись:
    import re
    number = int(re.search('\?p=(\d+)"', '<a href="https://example.com/?p=5144" rel="bookmark"> example </a>').group(1))
    print(number)
    
    # 5144
    Ответ написан
    1 комментарий
  • Как спарсить текст из класса в который вложен текст и другие классы с текстом?

    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 Примеры лучших работ Дизайн сайтов Дизайн мобильных приложений
    Ответ написан
    Комментировать