trevorhobenshield / twitter-api-client

Implementation of X/Twitter v1, v2, and GraphQL APIs
https://pypi.org/project/twitter-api-client
MIT License
1.52k stars 204 forks source link

Requests need to support utf-8 encoding. Unable to login with password. #133

Open prostate opened 1 year ago

prostate commented 1 year ago

Suppose this is because of the "€" in the password.

Script is:

from twitter.scraper import Scraper

email = "raynagarbo@hotmail.com"
username = "lunin23325"
password = "n€r0ont0p$$20945"

scraper = Scraper(email, username, password)
print(f"Logged in as: {username}")

Error is:

Traceback (most recent call last):
  File "C:\Users\archi\OneDrive\Documents\svc\followers.py", line 7, in <module>
    scraper = Scraper(email, username, password)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\scraper.py", line 40, in __init__
    self.session = self._validate_session(email, username, password, session, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\scraper.py", line 792, in _validate_session     
    return login(email, username, password, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\login.py", line 167, in login
    client = execute_login_flow(client, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\login.py", line 130, in execute_login_flow      
    client = init_guest_token(client)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\login.py", line 40, in init_guest_token
    return update_token(client, 'guest_token', 'https://api.twitter.com/1.1/guest/activate.json')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\twitter\login.py", line 18, in update_token
    r = client.post(url, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_client.py", line 1132, in post
    return self.request(
           ^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_client.py", line 801, in request
    request = self.build_request(
              ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_client.py", line 358, in build_request
    return Request(
           ^^^^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_models.py", line 335, in __init__
    Cookies(cookies).set_cookie_header(self)
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_models.py", line 1045, in set_cookie_header      
    self.jar.add_cookie_header(urllib_request)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1520.0_x64__qbz5n2kfra8p0\Lib\http\cookiejar.py", line 1373, in add_cookie_header
    request.add_unredirected_header(
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_models.py", line 1191, in add_unredirected_header
    self.request.headers[key] = value
    ~~~~~~~~~~~~~~~~~~~~^^^^^
  File "C:\Users\archi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\httpx\_models.py", line 235, in __setitem__
    set_value = value.encode(self._encoding or "utf-8")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'ascii' codec can't encode character '\u20ac' in position 61: ordinal not in range(128)
2meito commented 8 months ago

Don't share your login info...

prostate commented 8 months ago

Don't share your login info...

quite obviously a throwaway account, but thanks.