KevinGlare
@KevinGlare
Designer / web developer

Как в python requests подставить куки или перейти на следующую страницу?

Добрый день, пишу парсер на python и столкнулся с проблемой:
- есть сайт site.ru с поддоменами по городам
- при переходе на spb.site.ru вам присваиваются куки (name: chjs, value: 1, domain: spb.site.ru, path: / и т.д.)
- если сразу передать r = requests.get('spb.site.ru/page'), то на сайте отобразятся данные по Вашему городу, а не по Санкт-Петербургу.
Есть два способа как получить страницу page - подставить куки сразу или сначала перейти на страницу с городом, пробовал оба способа, но не вышло. (как мне кажется)

def get_page(url):
    r = requests.get(url.rsplit('/',maxsplit=1)[0])
    r = requests.get(url)
    return r.text

и

def get_page(url):
    jar = requests.cookies.RequestsCookieJar()
    jar.set(name='chjs', value='1', domain='site.ru', path='/')
    r = requests.get(url)
    return r.text


При выполнении:
def get_all_page(html):
    soup = BeautifulSoup(html, 'lxml')
    search = soup.find('title')
    return search


Выдает title другого города
  • Вопрос задан
  • 11744 просмотра
Решения вопроса 2
@danis_2014
Переход на другую страницу с помощью requests?
with requests.Session() as session:
    session.post(url_0, data)  # изменяешь свой город
    response = session.get(url_1)  # получаешь данные с другой страницы сайта
Ответ написан
KevinGlare
@KevinGlare Автор вопроса
Designer / web developer
Еще один вариант:
def get_page(url):
    s = requests.Session()
    s.get(url.rsplit('/',maxsplit=1)[0])
    r = s.get(url)
    return r.text
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@1011
есть еще модуль import cookielib
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы