Форум сайта python.su
walletПопробовал, то же самое. Пока удалось продвинутся только со ссылками на сторонние сайты благодаря удалению слэша в адресе. Member area почему-то для меня по-прежнему закрыта.
R
#! 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]>
Офлайн
Слэш в конце пришлось удалить по рекомендациям отсюда 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)
Офлайн
Ещё немного поправили: User-Agent большими буквами. Но всё равно не помогает.
Офлайн
У меня вот так получилось картинку слить -
# -*- 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')
Офлайн
m0rtal
Ещё немного поправили: User-Agent большими буквами. Но всё равно не помогает.
'Mozilla/51.0.1'
Офлайн
Добавил полную строку User-Agent отсюда, вроде пошло. Редко ещё бывает 403, но пока не системно, буду разбираться.
Спасибо!
Отредактировано m0rtal (Фев. 15, 2017 16:52:48)
Офлайн
m0rtalСвой браузер можно было посмотреть в заголовках запроса в Firebug или HttpFox.
Добавил полную строку User-Agent отсюда, вроде пошло.
Отредактировано py.user.next (Фев. 16, 2017 01:57:45)
Офлайн
py.user.nextМожно было, но честно говоря глазами в выдаче не нашёл.
Офлайн
m0rtalТам вкладка “заголовки”, вот в ней.
Можно было, но честно говоря глазами в выдаче не нашёл.
Офлайн
py.user.nextТеперь нашёл ))
Там вкладка “заголовки”, вот в ней.
Офлайн