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

    @ScriptKiddo
    как его активировать при помощи request или каким либо другим способом


    Используйте selenium
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Firefox()
    driver.get("http://www.python.org")
    assert "Python" in driver.title
    elem = driver.find_element_by_name("q")
    elem.clear()
    elem.send_keys("pycon")
    elem.send_keys(Keys.RETURN)
    assert "No results found." not in driver.page_source
    driver.close()


    https://selenium-python.readthedocs.io/getting-sta...
    Ответ написан
  • Как парсить строки с помощью Python?

    @ScriptKiddo
    Для начала вам нужно нормализовать адреса в базе. Сделать это можно, например, с помощью геокодера от Яндекса
    /geocoder

    Например, ищем "Москва, Тверская 6"

    https://geocode-maps.yandex.ru/1.x/?apikey=%apikey...

    Ответ

    {
      "response": {
        "GeoObjectCollection": {
          "metaDataProperty": {
            "GeocoderResponseMetaData": {
              "request": "Москва,Тверская 6",
              "results": "10",
              "found": "1"
            }
          },
          "featureMember": [
            {
              "GeoObject": {
                "metaDataProperty": {
                  "GeocoderMetaData": {
                    "precision": "exact",
                    "text": "Россия, Москва, Тверская улица, 6с1",
                    "kind": "house",
                    "Address": {
                      "country_code": "RU",
                      "formatted": "Россия, Москва, Тверская улица, 6с1",
                      "postal_code": "125009",
                      "Components": [
                        {
                          "kind": "country",
                          "name": "Россия"
                        },
                        {
                          "kind": "province",
                          "name": "Центральный федеральный округ"
                        },
                        {
                          "kind": "province",
                          "name": "Москва"
                        },
                        {
                          "kind": "locality",
                          "name": "Москва"
                        },
                        {
                          "kind": "street",
                          "name": "Тверская улица"
                        },
                        {
                          "kind": "house",
                          "name": "6с1"
                        }
                      ]
                    },
                    "AddressDetails": {
                      "Country": {
                        "AddressLine": "Россия, Москва, Тверская улица, 6с1",
                        "CountryNameCode": "RU",
                        "CountryName": "Россия",
                        "AdministrativeArea": {
                          "AdministrativeAreaName": "Москва",
                          "Locality": {
                            "LocalityName": "Москва",
                            "Thoroughfare": {
                              "ThoroughfareName": "Тверская улица",
                              "Premise": {
                                "PremiseNumber": "6с1",
                                "PostalCode": {
                                  "PostalCodeNumber": "125009"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "name": "Тверская улица, 6с1",
                "description": "Москва, Россия",
                "boundedBy": {
                  "Envelope": {
                    "lowerCorner": "37.607242 55.757926",
                    "upperCorner": "37.615452 55.762556"
                  }
                },
                "Point": {
                  "pos": "37.611347 55.760241"
                }
              }
            }
          ]
        }
      }
    }



    После чего загружаете в базу в нужной схеме и ищете по нормализованным данным

    Ответ по адресу из вопроса
    {
      "response": {
        "GeoObjectCollection": {
          "metaDataProperty": {
            "GeocoderResponseMetaData": {
              "request": "Киевская обл. , г. Киев, ул. Крещатик, дом 50, кв. 8",
              "results": "10",
              "found": "2"
            }
          },
          "featureMember": [
            {
              "GeoObject": {
                "metaDataProperty": {
                  "GeocoderMetaData": {
                    "precision": "exact",
                    "text": "Украина, Киев, улица Крещатик, 50",
                    "kind": "house",
                    "Address": {
                      "country_code": "UA",
                      "formatted": "Украина, Киев, улица Крещатик, 50",
                      "Components": [
                        {
                          "kind": "country",
                          "name": "Украина"
                        },
                        {
                          "kind": "province",
                          "name": "Киев"
                        },
                        {
                          "kind": "locality",
                          "name": "Киев"
                        },
                        {
                          "kind": "street",
                          "name": "улица Крещатик"
                        },
                        {
                          "kind": "house",
                          "name": "50"
                        }
                      ]
                    },
                    "AddressDetails": {
                      "Country": {
                        "AddressLine": "Украина, Киев, улица Крещатик, 50",
                        "CountryNameCode": "UA",
                        "CountryName": "Украина",
                        "AdministrativeArea": {
                          "AdministrativeAreaName": "Киев",
                          "Locality": {
                            "LocalityName": "Киев",
                            "Thoroughfare": {
                              "ThoroughfareName": "улица Крещатик",
                              "Premise": {
                                "PremiseNumber": "50"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "name": "улица Крещатик, 50",
                "description": "Киев, Украина",
                "boundedBy": {
                  "Envelope": {
                    "lowerCorner": "30.516022 50.440632",
                    "upperCorner": "30.524232 50.445875"
                  }
                },
                "Point": {
                  "pos": "30.520127 50.443254"
                }
              }
            },
            {
              "GeoObject": {
                "metaDataProperty": {
                  "GeocoderMetaData": {
                    "precision": "other",
                    "text": "Украина, Киевская область",
                    "kind": "province",
                    "Address": {
                      "country_code": "UA",
                      "formatted": "Украина, Киевская область",
                      "Components": [
                        {
                          "kind": "country",
                          "name": "Украина"
                        },
                        {
                          "kind": "province",
                          "name": "Киевская область"
                        }
                      ]
                    },
                    "AddressDetails": {
                      "Country": {
                        "AddressLine": "Украина, Киевская область",
                        "CountryNameCode": "UA",
                        "CountryName": "Украина",
                        "AdministrativeArea": {
                          "AdministrativeAreaName": "Киевская область"
                        }
                      }
                    }
                  }
                },
                "name": "Киевская область",
                "description": "Украина",
                "boundedBy": {
                  "Envelope": {
                    "lowerCorner": "29.266411 49.179114",
                    "upperCorner": "32.161466 51.554013"
                  }
                },
                "Point": {
                  "pos": "30.456149 50.29807"
                }
              }
            }
          ]
        }
      }
    }


    UPD: добавил ответ по адресу из вопроса.
    Ответ написан
  • Как сделать так, что бы каждый новый результат запроса парсера на страницу сохранялся в следующей ячейки столбца excel?

    @ScriptKiddo
    Во-первых - вы создаете каждый раз новый файл. Нужно проверять файл на существование

    import os
    
    filename = 'save.xlsx'
    if os.path.exists(filename):
        xlsfile = openpyxl.load_workbook(filename)
    else:
        xlsfile = openpyxl.Workbook()


    Во-вторых - писать нужно со смещением. Смещение в данном случае - индекс последней строки на листе

    max_rows = sheet.max_row
    ...
    sheet['A{}'.format(row + max_rows)].value = data
    Ответ написан
  • Как нажать правой кнопкой мыши с selenium?

    @ScriptKiddo
    Если без клика ПКМ не обойтись

    import clipboard
    
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as ec
    
    driver = webdriver.Chrome()
    # Загружаем страницу
    
    driver.get("https://yandex.ru/chat/#/chats/1%2F0%2Fccb05ef5-1472-4e50-a926-602807a6ef94")
    balloons_xpath = "//div[contains(@class, 'yamb-message-balloon')]"
    WebDriverWait(driver, 10).until(ec.presence_of_all_elements_located((By.XPATH, balloons_xpath)))
    
    
    # Выбираем посты в канале
    balloons = driver.find_elements_by_xpath(balloons_xpath)
    
    # Кликаем на пост #4
    actionChains = ActionChains(driver)
    actionChains.context_click(balloons[4]).perform()
    get_link_text = 'Get message link'
    driver.find_element_by_xpath(f"//span[text()='{get_link_text}']/..").click()
    
    # Получаем буфер обмена
    text = clipboard.paste()  # text will have the content of clipboard
    
    
    print(text)
    driver.quit()


    OUT

    https://yandex.ru/chat/#/join/33a66c77-0c4d-45be-80f6-cae89e95d765/1591340550272042
    
    Process finished with exit code 0


    Осталось дописать алгоритм для прохождения по всем нужным ссылкам/постам
    Ответ написан
  • Python. Как выводить данные, которые постоянно обновляются/дополняются?

    @ScriptKiddo
    Пытаетесь обмануть математику? Что ж, неплохо

    from selenium import webdriver
    from time import sleep
    
    driver = webdriver.Chrome()
    
    driver.get("https://rublix.best/")
    
    prev_bet = 0
    while True:
    
        all_bets = driver.find_elements_by_xpath("//div[contains(@class, 'history-line')]")
        if all_bets:
            last_bet = all_bets[0].text
    
            if last_bet != prev_bet:
                prev_bet = last_bet
                print(f'Last bet: {last_bet}')
        sleep(1)
    Ответ написан
  • Как сделать скриншот расписания на сайте при помощи selenium?

    @ScriptKiddo
    Скрин элемента есть в свойстве .screenshot_as_png. Это поток байтов, записываем в байтовом режиме.

    blocks = driver.find_elements_by_xpath("//*[contains(@class, 'd-inline-block')]")
    
    for i, block in enumerate(blocks):
        with open(file=f'{i}.png', mode='wb') as f:
            f.write(block.screenshot_as_png)
    Ответ написан
  • Кто поможет разобраться с программой по ставкам?

    @ScriptKiddo
    Вопрос - можно ли вообще такое сделать?

    Можно.
    Может ли программа сама узнавать и перемножать на нужный КФ по 1 формуле

    Если напишете нужный функционал - может.
    может ли она работать офлайн

    Узнавать матчи и коэффициенты оффлайн не получится

    Писать можете на любом языке. Можете начать на Python. Декопмозируйте задачу - и вперед
    Ответ написан