Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to add proxy parameter #18

Closed
stephenLee opened this issue Jul 12, 2014 · 2 comments
Closed

How to add proxy parameter #18

stephenLee opened this issue Jul 12, 2014 · 2 comments

Comments

@stephenLee
Copy link

I wonder how can I add a proxy when do http request.
Thanks.

@jmcarp
Copy link
Owner

jmcarp commented Jul 28, 2014

As of 3c37c92, there are two ways to do this, in your session configuration or in an individual request. Both methods use the proxies argument from python-requests.

from requests import Session
from robobrowser import RoboBrowser

# You can add your proxies to your session configuration, which means they'll 
# apply to all requests by default:
session = Session()
session.proxies = {'http': 'http://my.proxy.com/'}
browser = RoboBrowser(session=session)

# Or you can choose proxies when calling open, follow_link, or submit_form, 
# which overrides any default settings:
browser.open('https://github.com/', proxies={'http': 'http://another.proxy.com/'})

I'm closing this issue for now, but feel free to reopen if you encounter any issues with proxies.

@jmcarp jmcarp closed this as completed Jul 28, 2014
@joykalyanguru
Copy link

hi @jmcarp , thank you for your awesome work. I'm totally new in python. I realized that your code above would work perfectly, but as newbie I can't figured it out. I'm using script below & I would like to run the script via proxy server (e.g. 127.0.0.1:8080).

import re
import robobrowser
import sys

MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; en-gb; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.16 Safari/535.19"
FB_AUTH = "https://www.facebook.com/v2.6/dialog/oauth?redirect_uri=fb464891386855067%3A%2F%2Fauthorize%2F&display=touch&state=%7B%22challenge%22%3A%22IUUkEUqIGud332lfu%252BMJhxL4Wlc%253D%22%2C%220_auth_logger_id%22%3A%2230F06532-A1B9-4B10-BB28-B29956C71AB1%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22%7D&scope=user_birthday%2Cuser_photos%2Cuser_education_history%2Cemail%2Cuser_relationship_details%2Cuser_friends%2Cuser_work_history%2Cuser_likes&response_type=token%2Csigned_request&default_audience=friends&return_scopes=true&auth_type=rerequest&client_id=464891386855067&ret=login&sdk=ios&logger_id=30F06532-A1B9-4B10-BB28-B29956C71AB1&ext=1470840777&hash=AeZqkIcf-NEW6vBd"


def get_access_token(email, password):
    s = robobrowser.RoboBrowser(user_agent=MOBILE_USER_AGENT, parser="lxml")
    s.open(FB_AUTH)

    ## submit login form
    f = s.get_form()
    f["pass"] = password
    f["email"] = email
    s.submit_form(f)

    ## click the 'ok' button on the dialog informing you that you have already authenticated with the Tinder app
    f = s.get_form()
    s.submit_form(f, submit=f.submit_fields['__CONFIRM__'])

    ## get access token from the http response
    access_token = re.search(r"access_token=([\w\d]+)", s.response.content.decode()).groups()[0]
    return access_token


email = sys.argv[1]
password = sys.argv[2]
access_token = get_access_token(email, password)

print(access_token)

I've tried code bellow, but got no expected result.

from requests import Session
import re
from robobrowser import RoboBrowser
import sys

MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; en-gb; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.16 Safari/535.19"
FB_AUTH = "https://www.facebook.com/v2.6/dialog/oauth?redirect_uri=fb464891386855067%3A%2F%2Fauthorize%2F&display=touch&state=%7B%22challenge%22%3A%22IUUkEUqIGud332lfu%252BMJhxL4Wlc%253D%22%2C%220_auth_logger_id%22%3A%2230F06532-A1B9-4B10-BB28-B29956C71AB1%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22%7D&scope=user_birthday%2Cuser_photos%2Cuser_education_history%2Cemail%2Cuser_relationship_details%2Cuser_friends%2Cuser_work_history%2Cuser_likes&response_type=token%2Csigned_request&default_audience=friends&return_scopes=true&auth_type=rerequest&client_id=464891386855067&ret=login&sdk=ios&logger_id=30F06532-A1B9-4B10-BB28-B29956C71AB1&ext=1470840777&hash=AeZqkIcf-NEW6vBd"

def get_access_token(email, password, proxiesvalue):

    session = Session()
    session.proxies = {'http': proxiesvalue}
    s = robobrowser.RoboBrowser(user_agent=MOBILE_USER_AGENT, session=session, parser="lxml")
    s.open(FB_AUTH)

    ## submit login form
    f = s.get_form()
    f["pass"] = password
    f["email"] = email
    s.submit_form(f)

    ## click the 'ok' button on the dialog informing you that you have already authenticated with the Tinder app
    f = s.get_form()
    s.submit_form(f, submit=f.submit_fields['__CONFIRM__'])

    ## get access token from the http response
    access_token = re.search(r"access_token=([\w\d]+)", s.response.content.decode()).groups()[0]
    return access_token


email = sys.argv[1]
password = sys.argv[2]
proxiesvalue = sys.argv[3]
access_token = get_access_token(email, password, proxiesvalue)

print(access_token)

feel free to edit script, any help from you would be much appreciated.
joy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants