webscout 8.2.7__py3-none-any.whl โ†’ 8.2.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. webscout/AIauto.py +33 -15
  2. webscout/AIbase.py +96 -37
  3. webscout/AIutel.py +703 -250
  4. webscout/Bard.py +441 -323
  5. webscout/Extra/Act.md +309 -0
  6. webscout/Extra/GitToolkit/__init__.py +10 -0
  7. webscout/Extra/GitToolkit/gitapi/README.md +110 -0
  8. webscout/Extra/GitToolkit/gitapi/__init__.py +12 -0
  9. webscout/Extra/GitToolkit/gitapi/repository.py +195 -0
  10. webscout/Extra/GitToolkit/gitapi/user.py +96 -0
  11. webscout/Extra/GitToolkit/gitapi/utils.py +62 -0
  12. webscout/Extra/YTToolkit/README.md +375 -0
  13. webscout/Extra/YTToolkit/YTdownloader.py +957 -0
  14. webscout/Extra/YTToolkit/__init__.py +3 -0
  15. webscout/Extra/YTToolkit/transcriber.py +476 -0
  16. webscout/Extra/YTToolkit/ytapi/README.md +44 -0
  17. webscout/Extra/YTToolkit/ytapi/__init__.py +6 -0
  18. webscout/Extra/YTToolkit/ytapi/channel.py +307 -0
  19. webscout/Extra/YTToolkit/ytapi/errors.py +13 -0
  20. webscout/Extra/YTToolkit/ytapi/extras.py +118 -0
  21. webscout/Extra/YTToolkit/ytapi/https.py +88 -0
  22. webscout/Extra/YTToolkit/ytapi/patterns.py +61 -0
  23. webscout/Extra/YTToolkit/ytapi/playlist.py +59 -0
  24. webscout/Extra/YTToolkit/ytapi/pool.py +8 -0
  25. webscout/Extra/YTToolkit/ytapi/query.py +40 -0
  26. webscout/Extra/YTToolkit/ytapi/stream.py +63 -0
  27. webscout/Extra/YTToolkit/ytapi/utils.py +62 -0
  28. webscout/Extra/YTToolkit/ytapi/video.py +232 -0
  29. webscout/Extra/__init__.py +7 -0
  30. webscout/Extra/autocoder/__init__.py +9 -0
  31. webscout/Extra/autocoder/autocoder.py +1105 -0
  32. webscout/Extra/autocoder/autocoder_utiles.py +332 -0
  33. webscout/Extra/gguf.md +430 -0
  34. webscout/Extra/gguf.py +684 -0
  35. webscout/Extra/tempmail/README.md +488 -0
  36. webscout/Extra/tempmail/__init__.py +28 -0
  37. webscout/Extra/tempmail/async_utils.py +141 -0
  38. webscout/Extra/tempmail/base.py +161 -0
  39. webscout/Extra/tempmail/cli.py +187 -0
  40. webscout/Extra/tempmail/emailnator.py +84 -0
  41. webscout/Extra/tempmail/mail_tm.py +361 -0
  42. webscout/Extra/tempmail/temp_mail_io.py +292 -0
  43. webscout/Extra/weather.md +281 -0
  44. webscout/Extra/weather.py +194 -0
  45. webscout/Extra/weather_ascii.py +76 -0
  46. webscout/Litlogger/README.md +10 -0
  47. webscout/Litlogger/__init__.py +15 -0
  48. webscout/Litlogger/formats.py +4 -0
  49. webscout/Litlogger/handlers.py +103 -0
  50. webscout/Litlogger/levels.py +13 -0
  51. webscout/Litlogger/logger.py +92 -0
  52. webscout/Provider/AI21.py +177 -0
  53. webscout/Provider/AISEARCH/DeepFind.py +254 -0
  54. webscout/Provider/AISEARCH/Perplexity.py +333 -0
  55. webscout/Provider/AISEARCH/README.md +279 -0
  56. webscout/Provider/AISEARCH/__init__.py +9 -0
  57. webscout/Provider/AISEARCH/felo_search.py +202 -0
  58. webscout/Provider/AISEARCH/genspark_search.py +324 -0
  59. webscout/Provider/AISEARCH/hika_search.py +186 -0
  60. webscout/Provider/AISEARCH/iask_search.py +410 -0
  61. webscout/Provider/AISEARCH/monica_search.py +220 -0
  62. webscout/Provider/AISEARCH/scira_search.py +298 -0
  63. webscout/Provider/AISEARCH/webpilotai_search.py +255 -0
  64. webscout/Provider/Aitopia.py +316 -0
  65. webscout/Provider/AllenAI.py +440 -0
  66. webscout/Provider/Andi.py +228 -0
  67. webscout/Provider/Blackboxai.py +791 -0
  68. webscout/Provider/ChatGPTClone.py +237 -0
  69. webscout/Provider/ChatGPTGratis.py +194 -0
  70. webscout/Provider/ChatSandbox.py +342 -0
  71. webscout/Provider/Cloudflare.py +324 -0
  72. webscout/Provider/Cohere.py +208 -0
  73. webscout/Provider/Deepinfra.py +340 -0
  74. webscout/Provider/ExaAI.py +261 -0
  75. webscout/Provider/ExaChat.py +358 -0
  76. webscout/Provider/Flowith.py +217 -0
  77. webscout/Provider/FreeGemini.py +250 -0
  78. webscout/Provider/Gemini.py +169 -0
  79. webscout/Provider/GithubChat.py +369 -0
  80. webscout/Provider/GizAI.py +295 -0
  81. webscout/Provider/Glider.py +225 -0
  82. webscout/Provider/Groq.py +801 -0
  83. webscout/Provider/HF_space/__init__.py +0 -0
  84. webscout/Provider/HF_space/qwen_qwen2.py +206 -0
  85. webscout/Provider/HeckAI.py +375 -0
  86. webscout/Provider/HuggingFaceChat.py +469 -0
  87. webscout/Provider/Hunyuan.py +283 -0
  88. webscout/Provider/Jadve.py +291 -0
  89. webscout/Provider/Koboldai.py +384 -0
  90. webscout/Provider/LambdaChat.py +411 -0
  91. webscout/Provider/Llama3.py +259 -0
  92. webscout/Provider/MCPCore.py +315 -0
  93. webscout/Provider/Marcus.py +198 -0
  94. webscout/Provider/Nemotron.py +218 -0
  95. webscout/Provider/Netwrck.py +270 -0
  96. webscout/Provider/OLLAMA.py +396 -0
  97. webscout/Provider/OPENAI/BLACKBOXAI.py +766 -0
  98. webscout/Provider/OPENAI/Cloudflare.py +378 -0
  99. webscout/Provider/OPENAI/FreeGemini.py +283 -0
  100. webscout/Provider/OPENAI/NEMOTRON.py +232 -0
  101. webscout/Provider/OPENAI/Qwen3.py +283 -0
  102. webscout/Provider/OPENAI/README.md +952 -0
  103. webscout/Provider/OPENAI/TwoAI.py +357 -0
  104. webscout/Provider/OPENAI/__init__.py +40 -0
  105. webscout/Provider/OPENAI/ai4chat.py +293 -0
  106. webscout/Provider/OPENAI/api.py +969 -0
  107. webscout/Provider/OPENAI/base.py +249 -0
  108. webscout/Provider/OPENAI/c4ai.py +373 -0
  109. webscout/Provider/OPENAI/chatgpt.py +556 -0
  110. webscout/Provider/OPENAI/chatgptclone.py +494 -0
  111. webscout/Provider/OPENAI/chatsandbox.py +173 -0
  112. webscout/Provider/OPENAI/copilot.py +242 -0
  113. webscout/Provider/OPENAI/deepinfra.py +322 -0
  114. webscout/Provider/OPENAI/e2b.py +1414 -0
  115. webscout/Provider/OPENAI/exaai.py +417 -0
  116. webscout/Provider/OPENAI/exachat.py +444 -0
  117. webscout/Provider/OPENAI/flowith.py +162 -0
  118. webscout/Provider/OPENAI/freeaichat.py +359 -0
  119. webscout/Provider/OPENAI/glider.py +326 -0
  120. webscout/Provider/OPENAI/groq.py +364 -0
  121. webscout/Provider/OPENAI/heckai.py +308 -0
  122. webscout/Provider/OPENAI/llmchatco.py +335 -0
  123. webscout/Provider/OPENAI/mcpcore.py +389 -0
  124. webscout/Provider/OPENAI/multichat.py +376 -0
  125. webscout/Provider/OPENAI/netwrck.py +357 -0
  126. webscout/Provider/OPENAI/oivscode.py +287 -0
  127. webscout/Provider/OPENAI/opkfc.py +496 -0
  128. webscout/Provider/OPENAI/pydantic_imports.py +172 -0
  129. webscout/Provider/OPENAI/scirachat.py +477 -0
  130. webscout/Provider/OPENAI/sonus.py +304 -0
  131. webscout/Provider/OPENAI/standardinput.py +433 -0
  132. webscout/Provider/OPENAI/textpollinations.py +339 -0
  133. webscout/Provider/OPENAI/toolbaz.py +413 -0
  134. webscout/Provider/OPENAI/typefully.py +355 -0
  135. webscout/Provider/OPENAI/typegpt.py +364 -0
  136. webscout/Provider/OPENAI/uncovrAI.py +463 -0
  137. webscout/Provider/OPENAI/utils.py +318 -0
  138. webscout/Provider/OPENAI/venice.py +431 -0
  139. webscout/Provider/OPENAI/wisecat.py +387 -0
  140. webscout/Provider/OPENAI/writecream.py +163 -0
  141. webscout/Provider/OPENAI/x0gpt.py +365 -0
  142. webscout/Provider/OPENAI/yep.py +382 -0
  143. webscout/Provider/OpenGPT.py +209 -0
  144. webscout/Provider/Openai.py +496 -0
  145. webscout/Provider/PI.py +429 -0
  146. webscout/Provider/Perplexitylabs.py +415 -0
  147. webscout/Provider/QwenLM.py +254 -0
  148. webscout/Provider/Reka.py +214 -0
  149. webscout/Provider/StandardInput.py +290 -0
  150. webscout/Provider/TTI/README.md +82 -0
  151. webscout/Provider/TTI/__init__.py +7 -0
  152. webscout/Provider/TTI/aiarta.py +365 -0
  153. webscout/Provider/TTI/artbit.py +0 -0
  154. webscout/Provider/TTI/base.py +64 -0
  155. webscout/Provider/TTI/fastflux.py +200 -0
  156. webscout/Provider/TTI/magicstudio.py +201 -0
  157. webscout/Provider/TTI/piclumen.py +203 -0
  158. webscout/Provider/TTI/pixelmuse.py +225 -0
  159. webscout/Provider/TTI/pollinations.py +221 -0
  160. webscout/Provider/TTI/utils.py +11 -0
  161. webscout/Provider/TTS/README.md +192 -0
  162. webscout/Provider/TTS/__init__.py +10 -0
  163. webscout/Provider/TTS/base.py +159 -0
  164. webscout/Provider/TTS/deepgram.py +156 -0
  165. webscout/Provider/TTS/elevenlabs.py +111 -0
  166. webscout/Provider/TTS/gesserit.py +128 -0
  167. webscout/Provider/TTS/murfai.py +113 -0
  168. webscout/Provider/TTS/openai_fm.py +129 -0
  169. webscout/Provider/TTS/parler.py +111 -0
  170. webscout/Provider/TTS/speechma.py +580 -0
  171. webscout/Provider/TTS/sthir.py +94 -0
  172. webscout/Provider/TTS/streamElements.py +333 -0
  173. webscout/Provider/TTS/utils.py +280 -0
  174. webscout/Provider/TeachAnything.py +229 -0
  175. webscout/Provider/TextPollinationsAI.py +308 -0
  176. webscout/Provider/TwoAI.py +475 -0
  177. webscout/Provider/TypliAI.py +305 -0
  178. webscout/Provider/UNFINISHED/ChatHub.py +209 -0
  179. webscout/Provider/UNFINISHED/Youchat.py +330 -0
  180. webscout/Provider/UNFINISHED/liner_api_request.py +263 -0
  181. webscout/Provider/UNFINISHED/puterjs.py +635 -0
  182. webscout/Provider/UNFINISHED/test_lmarena.py +119 -0
  183. webscout/Provider/Venice.py +258 -0
  184. webscout/Provider/VercelAI.py +253 -0
  185. webscout/Provider/WiseCat.py +233 -0
  186. webscout/Provider/WrDoChat.py +370 -0
  187. webscout/Provider/Writecream.py +246 -0
  188. webscout/Provider/WritingMate.py +269 -0
  189. webscout/Provider/__init__.py +174 -0
  190. webscout/Provider/ai4chat.py +174 -0
  191. webscout/Provider/akashgpt.py +335 -0
  192. webscout/Provider/asksteve.py +220 -0
  193. webscout/Provider/cerebras.py +290 -0
  194. webscout/Provider/chatglm.py +215 -0
  195. webscout/Provider/cleeai.py +213 -0
  196. webscout/Provider/copilot.py +425 -0
  197. webscout/Provider/elmo.py +283 -0
  198. webscout/Provider/freeaichat.py +285 -0
  199. webscout/Provider/geminiapi.py +208 -0
  200. webscout/Provider/granite.py +235 -0
  201. webscout/Provider/hermes.py +266 -0
  202. webscout/Provider/julius.py +223 -0
  203. webscout/Provider/koala.py +170 -0
  204. webscout/Provider/learnfastai.py +325 -0
  205. webscout/Provider/llama3mitril.py +215 -0
  206. webscout/Provider/llmchat.py +258 -0
  207. webscout/Provider/llmchatco.py +306 -0
  208. webscout/Provider/lmarena.py +198 -0
  209. webscout/Provider/meta.py +801 -0
  210. webscout/Provider/multichat.py +364 -0
  211. webscout/Provider/oivscode.py +309 -0
  212. webscout/Provider/samurai.py +224 -0
  213. webscout/Provider/scira_chat.py +299 -0
  214. webscout/Provider/scnet.py +243 -0
  215. webscout/Provider/searchchat.py +292 -0
  216. webscout/Provider/sonus.py +258 -0
  217. webscout/Provider/talkai.py +194 -0
  218. webscout/Provider/toolbaz.py +353 -0
  219. webscout/Provider/turboseek.py +266 -0
  220. webscout/Provider/typefully.py +202 -0
  221. webscout/Provider/typegpt.py +289 -0
  222. webscout/Provider/uncovr.py +368 -0
  223. webscout/Provider/x0gpt.py +299 -0
  224. webscout/Provider/yep.py +389 -0
  225. webscout/__init__.py +4 -2
  226. webscout/cli.py +3 -28
  227. webscout/client.py +70 -0
  228. webscout/conversation.py +35 -35
  229. webscout/litagent/Readme.md +276 -0
  230. webscout/litagent/__init__.py +29 -0
  231. webscout/litagent/agent.py +455 -0
  232. webscout/litagent/constants.py +60 -0
  233. webscout/litprinter/__init__.py +59 -0
  234. webscout/optimizers.py +419 -419
  235. webscout/scout/README.md +404 -0
  236. webscout/scout/__init__.py +8 -0
  237. webscout/scout/core/__init__.py +7 -0
  238. webscout/scout/core/crawler.py +210 -0
  239. webscout/scout/core/scout.py +607 -0
  240. webscout/scout/core/search_result.py +96 -0
  241. webscout/scout/core/text_analyzer.py +63 -0
  242. webscout/scout/core/text_utils.py +277 -0
  243. webscout/scout/core/web_analyzer.py +52 -0
  244. webscout/scout/element.py +478 -0
  245. webscout/scout/parsers/__init__.py +69 -0
  246. webscout/scout/parsers/html5lib_parser.py +172 -0
  247. webscout/scout/parsers/html_parser.py +236 -0
  248. webscout/scout/parsers/lxml_parser.py +178 -0
  249. webscout/scout/utils.py +37 -0
  250. webscout/swiftcli/Readme.md +323 -0
  251. webscout/swiftcli/__init__.py +95 -0
  252. webscout/swiftcli/core/__init__.py +7 -0
  253. webscout/swiftcli/core/cli.py +297 -0
  254. webscout/swiftcli/core/context.py +104 -0
  255. webscout/swiftcli/core/group.py +241 -0
  256. webscout/swiftcli/decorators/__init__.py +28 -0
  257. webscout/swiftcli/decorators/command.py +221 -0
  258. webscout/swiftcli/decorators/options.py +220 -0
  259. webscout/swiftcli/decorators/output.py +252 -0
  260. webscout/swiftcli/exceptions.py +21 -0
  261. webscout/swiftcli/plugins/__init__.py +9 -0
  262. webscout/swiftcli/plugins/base.py +135 -0
  263. webscout/swiftcli/plugins/manager.py +269 -0
  264. webscout/swiftcli/utils/__init__.py +59 -0
  265. webscout/swiftcli/utils/formatting.py +252 -0
  266. webscout/swiftcli/utils/parsing.py +267 -0
  267. webscout/version.py +1 -1
  268. webscout/webscout_search.py +2 -182
  269. webscout/webscout_search_async.py +1 -179
  270. webscout/zeroart/README.md +89 -0
  271. webscout/zeroart/__init__.py +135 -0
  272. webscout/zeroart/base.py +66 -0
  273. webscout/zeroart/effects.py +101 -0
  274. webscout/zeroart/fonts.py +1239 -0
  275. {webscout-8.2.7.dist-info โ†’ webscout-8.2.9.dist-info}/METADATA +262 -83
  276. webscout-8.2.9.dist-info/RECORD +289 -0
  277. {webscout-8.2.7.dist-info โ†’ webscout-8.2.9.dist-info}/WHEEL +1 -1
  278. {webscout-8.2.7.dist-info โ†’ webscout-8.2.9.dist-info}/entry_points.txt +1 -0
  279. webscout-8.2.7.dist-info/RECORD +0 -26
  280. {webscout-8.2.7.dist-info โ†’ webscout-8.2.9.dist-info}/licenses/LICENSE.md +0 -0
  281. {webscout-8.2.7.dist-info โ†’ webscout-8.2.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,276 @@
1
+ # ๐Ÿ”ฅ LitAgent - The Lit User Agent Generator
2
+
3
+ LitAgent is a powerful and modern user agent generator that keeps your requests fresh and undetectable! Built with style and packed with features, it's your go-to solution for managing user agents in your web scraping projects.
4
+
5
+ ## ๐Ÿš€ Quick Start
6
+
7
+ ```python
8
+ from webscout import LitAgent
9
+
10
+ # Create a LitAgent instance
11
+ agent = LitAgent()
12
+
13
+ # Get a random user agent
14
+ ua = agent.random()
15
+ print(ua) # Mozilla/5.0 (Windows NT 11.0) AppleWebKit/537.36 ...
16
+ ```
17
+
18
+ ## ๐ŸŽฏ Features
19
+
20
+ ### Browser-Specific Agents
21
+
22
+ ```python
23
+ # Get agents for specific browsers
24
+ chrome_ua = agent.chrome() # Latest Chrome agent
25
+ firefox_ua = agent.firefox() # Latest Firefox agent
26
+ safari_ua = agent.safari() # Latest Safari agent
27
+ edge_ua = agent.edge() # Latest Edge agent
28
+ opera_ua = agent.opera() # Latest Opera agent
29
+ ```
30
+
31
+ ### Device-Specific Agents
32
+
33
+ ```python
34
+ # Get mobile or desktop agents
35
+ mobile_ua = agent.mobile() # Mobile device agent
36
+ desktop_ua = agent.desktop() # Desktop device agent
37
+
38
+ # New - Get agents for specific device types
39
+ tablet_ua = agent.tablet() # Tablet device agent
40
+ tv_ua = agent.smart_tv() # Smart TV agent
41
+ console_ua = agent.gaming() # Gaming console agent
42
+ ```
43
+
44
+ ### OS-Specific Agents
45
+
46
+ ```python
47
+ # New - Get agents for specific operating systems
48
+ windows_ua = agent.windows() # Windows agent
49
+ mac_ua = agent.macos() # macOS agent
50
+ linux_ua = agent.linux() # Linux agent
51
+ android_ua = agent.android() # Android agent
52
+ ios_ua = agent.ios() # iOS agent
53
+ ```
54
+
55
+ ### Custom Agent Generation
56
+
57
+ ```python
58
+ # New - Generate custom user agents with specific attributes
59
+ custom_ua = agent.custom(
60
+ browser="chrome",
61
+ version="91.0",
62
+ os="windows",
63
+ os_version="10",
64
+ device_type="desktop"
65
+ )
66
+ ```
67
+
68
+ ### Keep It Fresh
69
+
70
+ ```python
71
+ # Refresh your agents pool anytime
72
+ agent.refresh() # Generates new set of agents
73
+
74
+ # New - Schedule automatic refreshes
75
+ agent.auto_refresh(interval_minutes=30) # Auto-refresh every 30 minutes
76
+ ```
77
+
78
+ ## ๐Ÿ’ซ Real-World Examples
79
+
80
+ ### With Requests
81
+
82
+ ```python
83
+ import requests
84
+ from webscout import LitAgent
85
+
86
+ agent = LitAgent()
87
+
88
+ def make_request(url):
89
+ headers = {
90
+ 'User-Agent': agent.random(),
91
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
92
+ 'Accept-Language': 'en-US,en;q=0.5',
93
+ 'Connection': 'keep-alive',
94
+ }
95
+ return requests.get(url, headers=headers)
96
+
97
+ # Make requests with different agents
98
+ response1 = make_request('https://api.example.com') # Random agent
99
+ response2 = make_request('https://mobile.example.com') # Another random agent
100
+ ```
101
+
102
+ ### With aiohttp
103
+
104
+ ```python
105
+ import aiohttp
106
+ import asyncio
107
+ from webscout import LitAgent
108
+
109
+ agent = LitAgent()
110
+
111
+ async def fetch(url):
112
+ headers = {'User-Agent': agent.random()}
113
+ async with aiohttp.ClientSession() as session:
114
+ async with session.get(url, headers=headers) as response:
115
+ return await response.text()
116
+
117
+ # Use it in your async code
118
+ async def main():
119
+ urls = [
120
+ 'https://api1.example.com',
121
+ 'https://api2.example.com',
122
+ 'https://api3.example.com'
123
+ ]
124
+ tasks = [fetch(url) for url in urls]
125
+ results = await asyncio.gather(*tasks)
126
+ return results
127
+ ```
128
+
129
+ ### With Selenium
130
+
131
+ ```python
132
+ from selenium import webdriver
133
+ from webscout import LitAgent
134
+
135
+ agent = LitAgent()
136
+
137
+ def create_driver():
138
+ options = webdriver.ChromeOptions()
139
+ options.add_argument(f'user-agent={agent.chrome()}')
140
+ return webdriver.Chrome(options=options)
141
+
142
+ # Use it with Selenium
143
+ driver = create_driver()
144
+ driver.get('https://example.com')
145
+ ```
146
+
147
+ ### New - With Playwright
148
+
149
+ ```python
150
+ from playwright.sync_api import sync_playwright
151
+ from webscout import LitAgent
152
+
153
+ agent = LitAgent()
154
+
155
+ def browse_with_playwright():
156
+ with sync_playwright() as p:
157
+ browser_options = {
158
+ "user_agent": agent.chrome(),
159
+ "viewport": {"width": 1280, "height": 720}
160
+ }
161
+ browser = p.chromium.launch()
162
+ context = browser.new_context(**browser_options)
163
+ page = context.new_page()
164
+ page.goto('https://example.com')
165
+ # Continue with your scraping logic
166
+ browser.close()
167
+ ```
168
+
169
+ ## ๐ŸŒŸ Pro Tips
170
+
171
+ 1. **Rotate Agents**: Refresh your agents pool periodically to avoid detection
172
+ ```python
173
+ agent = LitAgent()
174
+ for _ in range(10):
175
+ response = requests.get(url, headers={'User-Agent': agent.random()})
176
+ if _ % 3 == 0: # Refresh every 3 requests
177
+ agent.refresh()
178
+ ```
179
+
180
+ 2. **Device-Specific Scraping**: Use appropriate agents for different platforms
181
+ ```python
182
+ # Mobile site scraping
183
+ mobile_response = requests.get(
184
+ 'https://m.example.com',
185
+ headers={'User-Agent': agent.mobile()}
186
+ )
187
+
188
+ # Desktop site scraping
189
+ desktop_response = requests.get(
190
+ 'https://example.com',
191
+ headers={'User-Agent': agent.desktop()}
192
+ )
193
+ ```
194
+
195
+ 3. **Browser Consistency**: Stick to one browser type per session
196
+ ```python
197
+ chrome_agent = agent.chrome()
198
+ headers = {
199
+ 'User-Agent': chrome_agent,
200
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
201
+ }
202
+ # Use these headers for all requests in this session
203
+ ```
204
+
205
+ 4. **New - Browser Fingerprinting Defense**:
206
+ ```python
207
+ # Create consistent browser fingerprinting
208
+ fingerprint = agent.generate_fingerprint(browser="chrome")
209
+
210
+ headers = {
211
+ 'User-Agent': fingerprint['user_agent'],
212
+ 'Accept-Language': fingerprint['accept_language'],
213
+ 'Accept': fingerprint['accept'],
214
+ 'Sec-Ch-Ua': fingerprint['sec_ch_ua'],
215
+ 'Sec-Ch-Ua-Platform': fingerprint['platform']
216
+ }
217
+
218
+ # Use this consistent set for all session requests
219
+ ```
220
+
221
+ 5. **New - Multi-threading Support**:
222
+ ```python
223
+ import concurrent.futures
224
+ from webscout import LitAgent
225
+
226
+ agent = LitAgent(thread_safe=True) # Thread-safe instance
227
+
228
+ def fetch_url(url):
229
+ headers = {'User-Agent': agent.random()}
230
+ return requests.get(url, headers=headers).text
231
+
232
+ urls = ['https://example1.com', 'https://example2.com', 'https://example3.com']
233
+
234
+ with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
235
+ results = list(executor.map(fetch_url, urls))
236
+ ```
237
+
238
+ ## ๐Ÿ”ง Supported Browsers & Devices
239
+
240
+ - **Browsers**: Chrome, Firefox, Safari, Edge, Opera, Brave, Vivaldi
241
+ - **Operating Systems**: Windows, macOS, Linux, Android, iOS, Chrome OS
242
+ - **Devices**: Mobile phones, Tablets, Desktops, Game consoles, Smart TVs, Wearables
243
+
244
+ ## ๐ŸŽจ Why LitAgent?
245
+
246
+ - ๐Ÿš€ Modern and up-to-date user agents
247
+ - ๐Ÿ’ช Easy to use, hard to detect
248
+ - ๐Ÿ”„ Fresh agents on demand
249
+ - ๐Ÿ“ฑ Device-specific agents
250
+ - ๐ŸŒ All major browsers supported
251
+ - โšก Lightweight and fast
252
+ - ๐Ÿงฉ Advanced fingerprinting protection
253
+ - ๐Ÿ”„ Seamless proxy integration
254
+ - ๐Ÿงต Thread-safe operation
255
+ - ๐Ÿ•ฐ๏ธ Automatic refresh scheduling
256
+
257
+ ## ๐Ÿ“Š New - Analytics and Reporting
258
+
259
+ ```python
260
+ # Get statistics on your agent usage
261
+ stats = agent.get_stats()
262
+ print(f"Agents generated: {stats.total_generated}")
263
+ print(f"Most used browser: {stats.top_browser}")
264
+ print(f"Detection avoidance rate: {stats.avoidance_rate}%")
265
+
266
+ # Export your usage data
267
+ agent.export_stats('agent_usage.json')
268
+ ```
269
+
270
+ ## ๐Ÿ“‹ Installation
271
+
272
+ ```bash
273
+ pip install webscout
274
+ ```
275
+
276
+ Made with ๐Ÿ’– by the HelpingAI team
@@ -0,0 +1,29 @@
1
+ """
2
+ LitAgent - A lit user agent generator with infinite possibilities! ๐Ÿ”ฅ
3
+
4
+ Examples:
5
+ >>> from webscout import LitAgent
6
+ >>> agent = LitAgent()
7
+ >>>
8
+ >>> # Get random user agents
9
+ >>> agent.random() # Random agent from any browser
10
+ >>> agent.mobile() # Random mobile device agent
11
+ >>> agent.desktop() # Random desktop agent
12
+ >>>
13
+ >>> # Browser specific agents
14
+ >>> agent.chrome() # Latest Chrome browser
15
+ >>> agent.firefox() # Latest Firefox browser
16
+ >>> agent.safari() # Latest Safari browser
17
+ >>> agent.edge() # Latest Edge browser
18
+ >>> agent.opera() # Latest Opera browser
19
+ >>>
20
+ >>> # Refresh your agents
21
+ >>> agent.refresh() # Get fresh new agents
22
+ """
23
+
24
+ from .agent import LitAgent
25
+ from .constants import BROWSERS, OS_VERSIONS, DEVICES, FINGERPRINTS
26
+
27
+ agent = LitAgent()
28
+
29
+ __all__ = ['LitAgent', 'agent', 'BROWSERS', 'OS_VERSIONS', 'DEVICES', 'FINGERPRINTS']