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

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Допустим (если нет заголовков)
    pip install pandas openpyxl

    import pandas as pd
    import os
    
    def parse_excel(file_path):
        # Read the Excel file
        df = pd.read_excel(file_path, header=None)
    
        # Loop through each row in the DataFrame
        for index, row in df.iterrows():
            name = row[0]
            link = row[1]
    
            # Extract the file extension from the link
            file_extension = os.path.splitext(link)[1]  # Get the extension, e.g., .jpg
    
            # Form the new filename
            new_filename = f"{name}{file_extension}"
    
            # Output the new filename
            print(new_filename)
    
    
    # Example usage
    parse_excel("test.xlsx")
    Ответ написан
    Комментировать
  • Как достать данные из тега?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    66ce38f823106833102800.png
    66ce3c46df02d322388001.png

    Ваш код работает правильно, если он должен извлекать текст из первого элемента p в элементе td class="text-center".
    Однако, если ваша цель — извлечь дату из 4 колонки, то нужно изменить селектор для поиска.

    Если использовать парсер, то я бы сделал так:
    1. Нашел бы все строки tr, которые содержат данные
    2. Для каждой строки (tr) получил бы все колонки (td)
    3. Извлек бы нужные данные (например, дату) из соответствующей колонки
    4. Сохранил бы эти данные в массиве
    5. Дальше бы уже использовал бы

    Но можно же просто отправить запрос и получить все эти данные в формате json, так не проще?
    Вот ссылка, которую можно в браузере открыть - https://etender.gov.az/api/events?EventType=2&Page...
    Обычный GET запрос отправляете и получаете:
    {
      "currentPage": 1,
      "totalPages": 173,
      "pageSize": 15,
      "itemsInPage": 15,
      "totalItems": 2591,
      "items": [
        {
          "eventId": 314749,
          "eventType": 7,
          "eventStatus": 1,
          "buyerOrganizationName": "NAXÇIVAN MUXTAR RESPUBLİKASI QAZ İSTİSMAR XİDMƏTİ",
          "eventName": "Qaz tikinti quraşdırma materialları və avadanlıqlarının satınalınması",
          "publishDate": "2024-08-27T19:50:59",
          "endDate": "2024-09-18T18:00:00",
          "hasNewVersion": false,
          "awardedParticipantName": null,
          "awardedParticipantVoen": null,
          "documentViewType": 0,
          "actualVersionId": 0,
          "privateRfxId": 93247
        }
    .....
      ]
    }
    Ответ написан
    4 комментария
  • Как написать парсер для SPA?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    контент от сервера загружается потом

    Получается есть какой-то запрос от клиента, так? Ищите этот запрос на сайте, а потом повторяйте его в своем парсере. Скорее всегда надо будет передавать какие-то данные в заголовке(csrftoken или еще чего) - ищите какие.
    Возьмем для примера авторизацию на сайте. Вы же не можете спарсить сайт если не будете авторизованы, так? Приходится авторизоваться силами парсера, получать какой-то токен, при следующем запросе передавать этот токен, чтобы сервер проверил его и отдал скрытые данные.

    Вот код авторизации на python для примера:
    import requests
    
    url = 'https://nlstar.com/ru/office4/login/'
    
    s = requests.Session()
    
    r = s.get(url)
    csrf_token = r.cookies['csrftoken']
    
    data = {
        'login':        '007-2400101',
        'password':         '377609',
        'csrfmiddlewaretoken': csrf_token
    
    }
    
    d = s.post(url, data=data, headers=dict(Referer=url))
    dd = s.get('https://nlstar.com/')
    print(dd.text)


    Очевидно, что нет единого паттерна решения этой задачи. Потому что каждый сайт имеет свою защиту(мб в Вашем случае ее нет вообще и Вам просто post запрос на определенный url надо послать). Ищите. Разбирайтесь.
    Ответ написан
    1 комментарий
  • Как скачать видео с instagram с помощью nodejs?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Получаем html через request
    Парсим через Сheerio

    ps почему не использовать api инстаграма?
    Ответ написан
    3 комментария
  • Как спарсить html страницы?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Как-то можно посмотреть скрытую информацию на сайте? Какой-то js код(метод), который после нажатия показывает информацию.

    Тут два варианта решения:
    1. Разбираться как метод работает и написать свой, который будет вызывать его
    2. Имитировать клик

    Для примера как работает клик на selenium:
    driver = webdriver.Firefox()
    driver.get("http://www.google.ca")
    element = driver.find_element_by_link_text("Gmail")
    element.click()
    Ответ написан
  • Можно ли создать расширение для браузера, которое будет парсить сообщения из web.whatsapp.com?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Сделать можно все что угодно. Главное чтобы Вам хватило знаний и желания. Можно и расширение(ну или в порядке бреда - скрапер на питоне), но написать простое приложение(на том же electron. Порог вхождения минимальный) будет перспективнее... API смотрите у WhatsAPP и делайте.
    Первое в поисковике - https://www.npmjs.com/package/botsapp
    Ответ написан