{ "info": { "author": "Dmitry Mottl", "author_email": "dmitry.mottl@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries" ], "description": "# GetOldTweets3\nA Python 3 library and a corresponding command line utility for accessing old tweets.\n\n![Python 3x](https://img.shields.io/badge/python-3.x-blue.svg)\n[![Build Status](https://travis-ci.org/Mottl/GetOldTweets3.svg?branch=master)](https://travis-ci.org/Mottl/GetOldTweets3)\n[![pypi](https://img.shields.io/pypi/v/GetOldTweets3.svg)](https://pypi.org/project/GetOldTweets3/)\n[![Downloads](https://pepy.tech/badge/getoldtweets3)](https://pepy.tech/project/getoldtweets3)\n\nGetOldTweets3 is an improvement fork of the original Jefferson Henrique's [GetOldTweets-python](https://github.com/Jefferson-Henrique/GetOldTweets-python). It fixes known issues and adds features such as counting retweets, searching over multiple users accounts, etc. GetOldTweets3 supports only Python 3.\n\n## Details\nTwitter Official API has the bother limitation of time constraints, you can't get older tweets than a week. Some tools provide access to older tweets but in the most of them you have to spend some money before.\nI was searching other tools to do this job but I didn't found it, so after analyze how Twitter Search through browser works I understand its flow. Basically when you enter on Twitter page a scroll loader starts, if you scroll down you start to get more and more tweets, all through calls to a JSON provider. After mimic we get the best advantage of Twitter Search on browsers, it can search the deepest oldest tweets.\n\n## Installation\nUse `pip install GetOldTweets3` \nor `pip install -e git+https://github.com/Mottl/GetOldTweets3#egg=GetOldTweets3`\n\n## Command line utility\n**GetOldTweets3:** exports tweets to a specified csv file (\"output_got.csv\" by default).\n\n### Examples\n**Get help:**\n``` bash\nGetOldTweets3 -h\n``` \n\n**Example 1 - Get tweets by query search:**\n```bash\nGetOldTweets3 --querysearch \"europe refugees\" --maxtweets 10\n```\n\n**Example 1 - Get the last 10 top tweets by username:**\n```bash\nGetOldTweets3 --username \"barackobama\" --toptweets --maxtweets 10\n```\n\n**Example 3 - Get tweets by the username and bound dates** (until date is not included):\n```bash\nGetOldTweets3 --username \"barackobama\" --since 2015-09-10 --until 2015-09-12 --maxtweets 10\n```\n\n**Example 4 - Get tweets by several usernames:**\n```bash\nGetOldTweets3 --username \"BarackObama,AngelaMerkeICDU\" --usernames-from-file userlist.txt --maxtweets 10\n```\n(check https://github.com/Mottl/influencers for some prepared lists of usernames)\n\n**Example 5 - Get tweets by language:**\n```bash\nGetOldTweets3 --querysearch \"bitcoin\" --lang cn --maxtweets 10\n```\n\n**Example 6 - Get tweets by place:**\n```bash\nGetOldTweets3 --querysearch \"bitcoin\" --near \"Berlin, Germany\" --within 25km --maxtweets 10\n```\n\n**Example 7 - Get tweets by geo coordinates:**\n```bash\nGetOldTweets3 --querysearch \"museum\" --near \"55.75, 37.61\" --within 40km --maxtweets 10\n```\n\n## Python classes\n- **Tweet:** Model class that describes a specific tweet.\n - id (str)\n - permalink (str)\n - username (str)\n - to (str)\n - text (str)\n - date (datetime) in UTC\n - retweets (int)\n - favorites (int)\n - mentions (str)\n - hashtags (str)\n - geo (str)\n\n- **TweetManager:** A manager class to help getting tweets in **Tweet**'s model.\n - getTweets (**TwitterCriteria**): Return the list of tweets retrieved by using an instance of **TwitterCriteria**. \n\n- **TwitterCriteria:** A collection of search parameters to be used together with **TweetManager**.\n - setUsername (str or iterable): An optional specific username(s) from a twitter account (with or without \"@\").\n - setSince (str. \"yyyy-mm-dd\"): A lower bound date (UTC) to restrict search.\n - setUntil (str. \"yyyy-mm-dd\"): An upper bound date (not included) to restrict search.\n - setQuerySearch (str): A query text to be matched.\n - setTopTweets (bool): If True only the Top Tweets will be retrieved.\n - setNear(str): A reference location area from where tweets were generated.\n - setWithin (str): A distance radius from \"near\" location (e.g. 15mi).\n - setMaxTweets (int): The maximum number of tweets to be retrieved. If this number is unsetted or lower than 1 all possible tweets will be retrieved.\n\n### Examples\n**Get tweets by username(s):**\n``` python\nimport GetOldTweets3 as got\n\ntweetCriteria = got.manager.TweetCriteria().setUsername(\"barackobama whitehouse\")\\\n .setMaxTweets(2)\ntweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]\nprint(tweet.text)\n```\n\n**Get tweets by query search:**\n``` python\ntweetCriteria = got.manager.TweetCriteria().setQuerySearch('europe refugees')\\\n .setSince(\"2015-05-01\")\\\n .setUntil(\"2015-09-30\")\\\n .setMaxTweets(1)\ntweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]\nprint(tweet.text)\n```\n\n**Get tweets by username and bound dates:**\n``` python\ntweetCriteria = got.manager.TweetCriteria().setUsername(\"barackobama\")\\\n .setSince(\"2015-09-10\")\\\n .setUntil(\"2016-01-01\")\\\n .setMaxTweets(1)\ntweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]\nprint(tweet.text)\n```\n\n**Get the last 10 top tweets by username:**\n``` python\ntweetCriteria = got.manager.TweetCriteria().setUsername(\"barackobama\")\\\n .setTopTweets(True)\\\n .setMaxTweets(10)\ntweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]\nprint(tweet.text)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Mottl/GetOldTweets3", "keywords": "twitter tweets", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "GetOldTweets3", "package_url": "https://pypi.org/project/GetOldTweets3/", "platform": "", "project_url": "https://pypi.org/project/GetOldTweets3/", "project_urls": { "Homepage": "https://github.com/Mottl/GetOldTweets3" }, "release_url": "https://pypi.org/project/GetOldTweets3/0.0.10/", "requires_dist": [ "lxml (>=3.5.0)", "pyquery (>=1.2.10)" ], "requires_python": ">=3.4", "summary": "Get old tweets from Twitter", "version": "0.0.10" }, "last_serial": 5337339, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "de1d705e3e71ec8eb3ade778c588f01d", "sha256": "1714641fb96ff3d924a29219e6e4baa811d9d8690d1ca2863ad52dedb15c5561" }, "downloads": -1, "filename": "GetOldTweets3-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "de1d705e3e71ec8eb3ade778c588f01d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9601, "upload_time": "2018-09-15T12:57:51", "url": "https://files.pythonhosted.org/packages/01/f9/dbc8aee402ff6056da1188751cacdeece6d92d90b52b0ac2c4832fdcc3b6/GetOldTweets3-0.0.1-py3-none-any.whl" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "07015611c7810aa50fe5ab0b2c9a3bfe", "sha256": "3a7c20b876fd3465ad4942e2d2fccc4d6b7541f71bc84edd7f2550a446a01ae0" }, "downloads": -1, "filename": "GetOldTweets3-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "07015611c7810aa50fe5ab0b2c9a3bfe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 11621, "upload_time": "2019-05-30T13:37:33", "url": "https://files.pythonhosted.org/packages/9b/e6/e0d40bcdff849dd2aede00c043b16862d94f887fffdd8f0a14e4d4a8baf0/GetOldTweets3-0.0.10-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "62642b13eb9eb6d3f4e4651ad20a49e3", "sha256": "7a1d448a4c77452df9a7aec35b43915846fd842d8f41a6d4620de91d89db3abc" }, "downloads": -1, "filename": "GetOldTweets3-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "62642b13eb9eb6d3f4e4651ad20a49e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9662, "upload_time": "2018-10-25T11:11:14", "url": "https://files.pythonhosted.org/packages/82/38/986c58aeb3ff9375cbc79691bca057cd8c7701aaaca2323b9391f2cb792a/GetOldTweets3-0.0.3-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7b1c3dc5dfbd4a9dfa8cd07ab8977790", "sha256": "d6ba5471944beb7037ff0de987dbfbe8520d14ca97d56b2eccb82a978a49e656" }, "downloads": -1, "filename": "GetOldTweets3-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7b1c3dc5dfbd4a9dfa8cd07ab8977790", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9824, "upload_time": "2018-10-31T20:41:26", "url": "https://files.pythonhosted.org/packages/9e/70/2eaf545d8856e849f2dd8b5cf23b101edad2e7f78942ea2827bcfbbba07d/GetOldTweets3-0.0.4-py3-none-any.whl" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "988badb3ef135b86e73f344180e8dded", "sha256": "ff617940b1aa694b45df2db3f816ebdc3a5cd23d18b22f7ef4ef121009cbb233" }, "downloads": -1, "filename": "GetOldTweets3-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "988badb3ef135b86e73f344180e8dded", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10123, "upload_time": "2018-11-01T10:12:24", "url": "https://files.pythonhosted.org/packages/17/7f/f7b2fb483bae2635271fbd037428512b5bac55f4cd2ecc30afc666c73a6d/GetOldTweets3-0.0.5-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "4897cb5312c95b572d4b61f2c6bfc248", "sha256": "f0ca1cbefe378f935f0fffa1076a47e7bf78fb268574c21329296c22459c83c5" }, "downloads": -1, "filename": "GetOldTweets3-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4897cb5312c95b572d4b61f2c6bfc248", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10128, "upload_time": "2018-11-03T14:07:19", "url": "https://files.pythonhosted.org/packages/17/09/e3e1740d9d84f70c8b1dcb4e6c08801fe902c793c6f25e6b0b97560be60d/GetOldTweets3-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5bbe23b20fcc82d8c1c3f2424b0c7b20", "sha256": "485534b201a1e022f0b1d2b8a0635ae2f6b24690a147f683e590cc279f644030" }, "downloads": -1, "filename": "GetOldTweets3-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "5bbe23b20fcc82d8c1c3f2424b0c7b20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10382, "upload_time": "2018-11-09T11:01:11", "url": "https://files.pythonhosted.org/packages/1e/04/dd875ba7491b82a98c84e2284633c0ddfa4dd4af4fce25c0941159830a73/GetOldTweets3-0.0.7-py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "ab3b4398a0f53a1a3c4cd72d826250f6", "sha256": "903b9f5237bf023180d3503755771fdf0f014fb177ff94658d565b2bb635a430" }, "downloads": -1, "filename": "GetOldTweets3-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "ab3b4398a0f53a1a3c4cd72d826250f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10401, "upload_time": "2018-11-28T23:32:28", "url": "https://files.pythonhosted.org/packages/d8/0a/ec8c1859720e5a1a5366596ed2c4fbc78a3dd8699e86328ab37108c796e6/GetOldTweets3-0.0.8-py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "842f5a0fc3146989e01ce163fd5ce77e", "sha256": "543a82e2199fa94ec632c6b6554e374ccc31df4b4c90302925627bb020b6820b" }, "downloads": -1, "filename": "GetOldTweets3-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "842f5a0fc3146989e01ce163fd5ce77e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10482, "upload_time": "2018-12-03T12:04:39", "url": "https://files.pythonhosted.org/packages/a1/59/84f13c55f8c3042bab52cdae688fb65dc62559914db07f6ebcdf060cc62b/GetOldTweets3-0.0.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "07015611c7810aa50fe5ab0b2c9a3bfe", "sha256": "3a7c20b876fd3465ad4942e2d2fccc4d6b7541f71bc84edd7f2550a446a01ae0" }, "downloads": -1, "filename": "GetOldTweets3-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "07015611c7810aa50fe5ab0b2c9a3bfe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 11621, "upload_time": "2019-05-30T13:37:33", "url": "https://files.pythonhosted.org/packages/9b/e6/e0d40bcdff849dd2aede00c043b16862d94f887fffdd8f0a14e4d4a8baf0/GetOldTweets3-0.0.10-py3-none-any.whl" } ] }