Twitter OpenAPI
Project description
twitter_openapi_python
Twitter scraping with data validation by pydantic.
Setup
pip install twitter-openapi-python
Usage
import json
import datetime
from pathlib import Path
from tweepy_authlib import CookieSessionUserHandler
from twitter_openapi_python import TwitterOpenapiPython
# login by tweepy_authlib
if Path("cookie.json").exists():
with open("cookie.json", "r") as f:
cookies_dict = json.load(f)
if isinstance(cookies_dict, list):
cookies_dict = {k["name"]: k["value"] for k in cookies_dict}
else:
auth_handler = CookieSessionUserHandler(
screen_name=input("screen_name: "),
password=input("password: "),
)
cookies_dict = auth_handler.get_cookies().get_dict()
# To extract cookies from Windows (Linux by default)
# If you use tweepy_authlib, you must be on Windows
client = TwitterOpenapiPython()
client.additional_api_headers = {
"sec-ch-ua-platform": '"Windows"',
}
client.additional_browser_headers = {
"sec-ch-ua-platform": '"Windows"',
}
# get client from cookies
撫 = client.get_client_from_cookies(cookies=cookies_dict)
# tweet "Hello World!!" with current time
time = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
撫.get_post_api().post_create_tweet(tweet_text=f"Hello World!!{time}")
# get user info
response = 撫.get_user_api().get_user_by_screen_name("elonmusk")
Login
from twitter_openapi_python import TwitterOpenapiPython
# guest client
撫 = TwitterOpenapiPython().get_guest_client()
tweet = 撫.get_default_api().get_tweet_result_by_rest_id("1349129669258448897")
assert tweet.data is not None
assert tweet.data.tweet.legacy is not None
print(tweet.data.tweet.legacy.full_text)
Multiple OS
The Token can only be used on the same OS that issued the Token In other words, if the sec-ch-ua-platform does not match, the Token cannot be used. This library uses the Linux Chrome header by default. To use Token issued by Windows, do the following.
client = TwitterOpenapiPython()
client.additional_api_headers = {
"sec-ch-ua-platform": '"Windows"',
};
License
This project is dual licensed. You can choose one of the following licenses:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file twitter_openapi_python-0.0.27.tar.gz
.
File metadata
- Download URL: twitter_openapi_python-0.0.27.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad3a73c752247b7151679ac7beb522045c913d912d2129bf3821c7880e74bfc2 |
|
MD5 | 672701a29c00633c33ba570c83c3f453 |
|
BLAKE2b-256 | 58dc1ad88673ccb9b027e04e33287067b29839a00e49e9a0e72ae85ddca7e2f5 |
File details
Details for the file twitter_openapi_python-0.0.27-py3-none-any.whl
.
File metadata
- Download URL: twitter_openapi_python-0.0.27-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62a4cefeda6c4bf303ad22bb6a6309b1af46009667255e33ccbb6498fca3c8a3 |
|
MD5 | 3b7aff9eba4b2b6f7a809325a4a65f9b |
|
BLAKE2b-256 | cf41faeadd199c4c94f2158d17b8e92cd14dcf59378023fd0a0ebecaae16bc82 |