Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 15, 2017 15:13:27

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

wallet
R
Попробовал, то же самое. Пока удалось продвинутся только со ссылками на сторонние сайты благодаря удалению слэша в адресе. Member area почему-то для меня по-прежнему закрыта.

Код полностью:
 #! python3
import requests, bs4, os, re, random, time, pyperclip
myheader = {'user-agent': 'Mozilla Firefox/51.0.1', 'Referer':'https://www.volodaily.com/'}
loginpage='https://www.volodaily.com:443/login'
payload={'cjfm_do_login_nonce':'cc12226939','do_login':'','login_form_user_login':'blah','login_form_user_pass':'blah','redirect_url':'https://www.volodaily.com/issues','remember_me':'on'}
image='https://s3.amazonaws.com/dailyvolo/wp-content/uploads/2016/05/03164021/oceanflavor-by-Igor-Koshelev.jpg'
with requests.Session() as s:
    logged = s.post(loginpage, headers=myheader, data=payload)
    mycookies = logged.cookies
    print(mycookies)
    print('Login page responce: ' + str(logged))
    err = s.get(image, headers=myheader, cookies=mycookies)
    print('Amazon link avail: ' + str(err))
    membersonly = s.get('https://www.volomagazine.com', headers=myheader, cookies=mycookies)
    print('Members only area avail: ' + str(membersonly))

 Login page responce: <Response [200]>
Amazon link avail: <Response [200]>
Members only area avail: <Response [403]>

Офлайн

#2 Фев. 15, 2017 15:21:02

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

Слэш в конце пришлось удалить по рекомендациям отсюда http://stackoverflow.com/questions/19909127/python-requests-403-on-post
Говорят, нужно скармливать именно файл, а не каталог.

А ещё там же говорят, что 403 - это не 401, и сделано именно для защиты:

403 means the server is refusing to respond it and authentication won't make a difference. Sure, there's a chance whoever implemented it doesn't know the difference, but it's also likely that they are tracking something else and trying to prevent automated access like you're trying to do.

Но, я уверен, что и на это можно найти обход… только как?

Отредактировано m0rtal (Фев. 15, 2017 15:23:07)

Офлайн

#3 Фев. 15, 2017 16:27:30

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

Ещё немного поправили: User-Agent большими буквами. Но всё равно не помогает.

Офлайн

#4 Фев. 15, 2017 16:42:29

Gogantov
Зарегистрирован: 2016-11-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

У меня вот так получилось картинку слить -

 # -*- coding: UTF-8 -*-
from robobrowser import RoboBrowser
USER_AGENT = 'Mozilla/5.0 (compatible; ABrowse 0.4; Syllable)'
browser = RoboBrowser(user_agent=USER_AGENT, parser='html.parser')
LOGIN = 'логин'
PASSWORD = 'пароль'
browser.open('https://www.volodaily.com/login/')
form = browser.get_form(action='https://www.volodaily.com:443/login/')
form['login_form_user_login'] = LOGIN
form['login_form_user_pass'] = PASSWORD
browser.submit_form(form)
browser.open('https://www.volodaily.com/ocean-flavor-by-igor-koshelev/')
url = 'https://s3.amazonaws.com/dailyvolo/wp-content/uploads/2016/05/03164021/oceanflavor-by-Igor-Koshelev.jpg'
headers = {'Referer':'https://www.volodaily.com/ocean-flavor-by-igor-koshelev/'}
image = browser.session.get(url , headers=headers, stream=True)
with open('Igor-Koshelev.jpg', 'wb') as file:
    file.write(image.content)
print('ok')

И действительно, пока headers не прописал amasonaws отдавал xml с ошибкой.

Офлайн

#5 Фев. 15, 2017 16:43:53

wallet
Зарегистрирован: 2016-02-21
Сообщения: 50
Репутация: +  2  -
Профиль  

Requests: 403 в питоне, OK в браузере

m0rtal
Ещё немного поправили: User-Agent большими буквами. Но всё равно не помогает.

Вместо “Mozilla Firefox” пишите просто “Mozilla”

 'Mozilla/51.0.1'

Офлайн

#6 Фев. 15, 2017 16:45:54

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

Добавил полную строку User-Agent отсюда, вроде пошло. Редко ещё бывает 403, но пока не системно, буду разбираться.

Спасибо!

Отредактировано m0rtal (Фев. 15, 2017 16:52:48)

Офлайн

#7 Фев. 16, 2017 01:57:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

m0rtal
Добавил полную строку User-Agent отсюда, вроде пошло.
Свой браузер можно было посмотреть в заголовках запроса в Firebug или HttpFox.



Отредактировано py.user.next (Фев. 16, 2017 01:57:45)

Офлайн

#8 Фев. 20, 2017 07:32:45

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

py.user.next
Можно было, но честно говоря глазами в выдаче не нашёл.

Офлайн

#9 Фев. 20, 2017 12:57:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

m0rtal
Можно было, но честно говоря глазами в выдаче не нашёл.
Там вкладка “заголовки”, вот в ней.



Офлайн

#10 Фев. 20, 2017 12:59:37

m0rtal
Зарегистрирован: 2017-01-20
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests: 403 в питоне, OK в браузере

py.user.next
Там вкладка “заголовки”, вот в ней.
Теперь нашёл ))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version