Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 3

Requests парсит не ту страницу

27.02.2019, 13:21. Показов 3942. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуййста, в чем может быть ошибка при парсинге сайта. Использую requests, но он парсит только одну страницу, да и то, котороую я не передаю. Заранее благодарен за помощь.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import requests
from bs4 import BeautifulSoup
import csv
import json
 
 
def get_html(url):
    r = requests.get(url)
    return r.text
 
 
def get_total_pages(html):
    soup = BeautifulSoup(html, 'lxml')
    divs = soup.find('div', class_='paginations paginations--s_1')
    pages = divs.find_all('a', class_='paginations__link')[-2].get('href')
    total_pages = pages.split('=')[1].split('&')[0]
    return int(total_pages)
 
 
def get_page_data(html, base_url_for_wine):
    soup = BeautifulSoup(html, 'lxml')
    cur = soup.find('li', class_='paginations__item paginations__item--active ')
    print(cur.text.strip())
    divs = soup.find('div', class_='catalog-list__list mb30')
    ads = divs.find_all('div', class_='prod-card prod-card--s_1')
    ////////////////
 
 
def main():
    base_url = "https://moscow.altavina.ru/catalog/wine"
    base_url_for_wine = "https://altavina.ru"
    page_part = "/?PAGEN_1="
 
    total_pages = get_total_pages(get_html(base_url))
    print(total_pages)
 
    for i in range(2, 4):
        url_gen = base_url + page_part + str(i)
        html = get_html(url_gen)
        get_page_data(html, base_url_for_wine)
 
 
if __name__ == '__main__':
    main()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2019, 13:21
Ответы с готовыми решениями:

BeautifulSoup не парсит страницу до конца
Писал парсер до какого-то времени он работал нормально, а потом видимо в страницу разработчики внесли изменения и код стал невалидным или...

Парсит только 1 страницу из steam
from bs4 import BeautifulSoup as BS import requests headers = {'User-Agent': 'Mozilla/5.0 (Macintosh;' '...

Почему bs4 неверно парсит страницу?
Доброго времени суток, пытаюсь спарсить аватарку вконтакте, в качестве примера взяла Павла Дурова, часть кода следующая: import bs4 ...

4
49 / 21 / 6
Регистрация: 16.02.2019
Сообщений: 55
27.02.2019, 14:14
Так вы этот сайт не спарсите.

Потому что у вас логика не правильная.
Там нужно установить куку в которой будет записано что вы нажали кнопку "мне 18 лет"
Для этого нужно сделать дополнительный запрос перед парсингом.
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 3
27.02.2019, 14:19  [ТС]
Так дело в том, что он парсит только эту страницу https://altavina.ru/catalog/wine/ . Мне она конечно тоже нужна, ну я хочу перейти на следующие страницы, однако этого не происходит. Все время использует только эту страницу.
0
49 / 21 / 6
Регистрация: 16.02.2019
Сообщений: 55
27.02.2019, 14:36
Лучший ответ Сообщение было отмечено Gumer1 как решение

Решение

я вам уже написал, почему сайт не отдает последующие страницы.

Попробуйте взять какой нибудь отладочный прокси(Fiddler например, или Burpl Suite), и посмотрbnt через него запросы, предварительно очистив все куки в вашем браузере.

Для парсинга я бы не стал использовать requests. Есть например Scrapy.

Добавлено через 13 минут
Добавьте такую куку и должно начать работать как вы ожидаете:
JavaScript
1
{adultAllowed:1}
Python
1
2
3
my_cookie = {"adultAllowed":1}
s = requests.Session()
s.cookies.set(**my_cookie)
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 3
27.02.2019, 15:31  [ТС]
Спасибо большое. Оказывается при вызове страницы, она перекидывала на начальную страницу, но ваш ответ подтолкнул к решению
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2019, 15:31
Помогаю со студенческими работами здесь

Flask, requests. обновить страницу
Крутится локальный сервер. Пользователь из GUI может вносить некоторые изменения в html файлы, которые после обновления страницы...

Requests искажает получаемую html страницу
Формальная ссылка, чтобы точно без вопросов от сайта ко мне. Использованы ресурсы https://rasp.tpu.ru/ Здравствуйте киберфорумцы, мой...

Не парсит страницу сайта
Не могу понять почему мой код не работает. в манифесте разрешение к интернету прописал код такой package com.example.guessthestar; ...

PhpQuery парсит страницу в другой кодировке
Здравствуйте, при парсинге столкнулся с проблемой. Некоторые сайты парсятся в какой-то непонятной кодировке. Делаю так: ...

Добавил модуль requests в Visual Studio, но import requests подсвечен зеленым
Добавил модуль requests в Visual Studio, но import requests подсвечен зеленым. Как исправить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru