Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (11)

Лучшие ответы пользователя

Все ответы (16)
  • Как сделать авторизацию на сайт при парсинге через requests?

    На коленке состряпал, вроде работает:
    import requests
    
    url = "https://login.dnevnik.ru/login/esia/karelia"
    #url на свой регион заменишь, там когда на сайте авторизуешься он отображается
    
    login = 'логин'
    password = 'пароль'
    session = requests.Session()
    get_cookies = session.get(url)
    captcha_id = get_cookies.cookies['dnevnik_sst'].split('|')[0]
    print(captcha_id)
    
    data = {
    	'exceededAttempts': False,
    	'login': login,
    	'password': password,
    	'Captcha.Id': captcha_id
    }
    
    response = session.post(url, data)

    Для всех операций используешь объект session, в нём будут сохранятся куки, и потом можно обращаться к страницам, как будто ты авторизованный, например так:
    my_class_html = session.get('https://schools.dnevnik.ru/class.aspx')
    
    schedule_html = session.get('https://schools.dnevnik.ru/homework.aspx')
    Ответ написан
    2 комментария
  • Программирование python через minecraft?

    Не слушай никого!!!!!!! Делай то, что нравится. Не нужно себя насиловать, а то вообще охоту кодить отобьёшь.
    Ответ написан
    1 комментарий
  • Как спарсить значения?

    Так как ты используешь find_all (да, можно писать маленькими буквами), то у тебя получается список с искомыми значениями.
    С помощью цикла, прокручиваешь список, и получаешь значение, с помощью .text
    for i in b:
        print(i.text) #Ну или делаешь что тебе надо.

    Кстати, когда указываешь класс, можно делать это так:
    soup.findAll("a", class_= "ui-link review-votes__item review-votes__dislike review-votes__dislike_with_count")


    Это когда класс, ещё так можно id указывать.

    Лучше использовать 'lxml' вместо 'html.parser', он работает быстрее, так как написан на Си.
    Ставится так: pip install lxml
    Ответ написан
    Комментировать
  • Как правильно "упаковать" запрос к VK API?

    Для работы с VK API, есть библиотека vk_api. Или ты переизобретаешь велосипед?
    Ответ написан
    Комментировать
  • Что делать если парсится только одна ссылка?

    P.S Ты уже надел с глупыми вопросами, ты где парсингу учился? Если сам, то кинь в комент как с тобой связаться, скину тебе хороший курс по парсингу на python. После его прохождения таких вопросов у тебя не останется.

    Ну во первых, лучше использовать 'lxml', вместо 'html.parser'(он быстрее), устанавливается через pip.
    Во вторых, когда ищешь по классу можно писать так:
    find_all('div', class_='numeration')

    Ну и в третьих ты делаешь неправильно, нужно сначала найти 'div', он один, а потом уже в нём искать все 'a':
    for d in soup.find('div', class_='numeration').find_all('a'):

    А ты делаешь так, но div с таким классом один.
    soup.find_all('div', {'class': 'numeration'})


    Вся функция целиком должна выглядеть так:
    def bf_parse(base_url, headers):
        session = requests.session()
        request = session.get(base_url, headers=headers)
        soup = bs(request.content, 'lxml')
        for d in soup.find('div', class_='numeration').find_all('a'):
            link = d.get('href')
            print("https://www.rosfirm.ru"+link)
    Ответ написан
    3 комментария