зеркало из
				https://github.com/viginum-datalab/twscrape.git
				synced 2025-10-29 21:16:25 +02:00 
			
		
		
		
	fix: tweet_details crash when tweet not found (now is None)
Этот коммит содержится в:
		
							родитель
							
								
									18a3e3b3e0
								
							
						
					
					
						Коммит
						c35dcb902c
					
				| @ -186,7 +186,7 @@ The default output is in the console (stdout), one document per line. So it can | ||||
| twscrape search "elon mask lang:es" --limit=20 > data.txt | ||||
| ``` | ||||
| 
 | ||||
| By default, parsed data is returned. The original tweet responses can be retrieved with `--raw` | ||||
| By default, parsed data is returned. The original tweet responses can be retrieved with `--raw` flag. | ||||
| 
 | ||||
| ```sh | ||||
| twscrape search "elon mask lang:es" --limit=20 --raw | ||||
| @ -194,7 +194,7 @@ twscrape search "elon mask lang:es" --limit=20 --raw | ||||
| 
 | ||||
| ## Limitations | ||||
| 
 | ||||
| NOTE: After 1 July 2023 Twitter [introduced limits](https://twitter.com/elonmusk/status/1675187969420828672) on the number of tweets per day per account (and these continue to change), so the values below may not be fully correct. | ||||
| **NOTE:** After 1 July 2023 Twitter [introduced limits](https://twitter.com/elonmusk/status/1675187969420828672) on the number of tweets per day per account, so the values below may not be fully correct. | ||||
| 
 | ||||
| API rate limits (per account): | ||||
| - Search API – 250 req / 15 min | ||||
|  | ||||
| @ -152,7 +152,8 @@ class API: | ||||
|     async def tweet_details(self, twid: int, kv=None): | ||||
|         rep = await self.tweet_details_raw(twid, kv=kv) | ||||
|         obj = to_old_rep(rep.json()) | ||||
|         return Tweet.parse(obj["tweets"][str(twid)], obj) | ||||
|         doc = obj["tweets"].get(str(twid), None) | ||||
|         return Tweet.parse(doc, obj) if doc else None | ||||
| 
 | ||||
|     # followers | ||||
| 
 | ||||
|  | ||||
| @ -31,7 +31,10 @@ def get_fn_arg(args): | ||||
|     exit(1) | ||||
| 
 | ||||
| 
 | ||||
| def to_str(doc: httpx.Response | Tweet | User) -> str: | ||||
| def to_str(doc: httpx.Response | Tweet | User | None) -> str: | ||||
|     if doc is None: | ||||
|         return "Not Found. See --raw for more details." | ||||
| 
 | ||||
|     tmp = doc.json() | ||||
|     return tmp if isinstance(tmp, str) else json.dumps(tmp, default=str) | ||||
| 
 | ||||
|  | ||||
		Загрузка…
	
	
			
			x
			
			
		
	
		Ссылка в новой задаче
	
	Block a user
	 Vlad Pronsky
						Vlad Pronsky