|
25 | 25 | "name": "stdout", |
26 | 26 | "output_type": "stream", |
27 | 27 | "text": [ |
28 | | - "rm: cannot remove 'log.txt': No such file or directory\n" |
| 28 | + "rm: log.txt: No such file or directory\n" |
29 | 29 | ] |
30 | 30 | } |
31 | 31 | ], |
|
62 | 62 | "cell_type": "code", |
63 | 63 | "execution_count": 2, |
64 | 64 | "metadata": {}, |
65 | | - "outputs": [ |
66 | | - { |
67 | | - "name": "stderr", |
68 | | - "output_type": "stream", |
69 | | - "text": [ |
70 | | - "There was an error managing chromedriver (error sending request for url (https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json)); using driver found in the cache\n", |
71 | | - "Error sending stats to Plausible: error sending request for url (https://plausible.io/api/event)\n" |
72 | | - ] |
73 | | - }, |
74 | | - { |
75 | | - "ename": "SessionNotCreatedException", |
76 | | - "evalue": "Message: session not created: Chrome failed to start: exited normally.\n (session not created: DevToolsActivePort file doesn't exist)\n (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\nStacktrace:\n#0 0x556d1853ab9a <unknown>\n#1 0x556d18220670 <unknown>\n#2 0x556d18258971 <unknown>\n#3 0x556d18254315 <unknown>\n#4 0x556d182a0e66 <unknown>\n#5 0x556d182a04b6 <unknown>\n#6 0x556d18294923 <unknown>\n#7 0x556d182626e7 <unknown>\n#8 0x556d182636de <unknown>\n#9 0x556d1850466b <unknown>\n#10 0x556d18508611 <unknown>\n#11 0x556d184f04e5 <unknown>\n#12 0x556d18509192 <unknown>\n#13 0x556d184d56ef <unknown>\n#14 0x556d185299d8 <unknown>\n#15 0x556d18529ba7 <unknown>\n#16 0x556d185399ec <unknown>\n#17 0x7fc996c7c609 start_thread\n", |
77 | | - "output_type": "error", |
78 | | - "traceback": [ |
79 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
80 | | - "\u001b[0;31mSessionNotCreatedException\u001b[0m Traceback (most recent call last)", |
81 | | - "Cell \u001b[0;32mIn[2], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Set up WebDriver\u001b[39;00m\n\u001b[1;32m 2\u001b[0m op \u001b[38;5;241m=\u001b[39m webdriver\u001b[38;5;241m.\u001b[39mChromeOptions()\n\u001b[0;32m----> 4\u001b[0m driver \u001b[38;5;241m=\u001b[39m \u001b[43mwebdriver\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mChrome\u001b[49m\u001b[43m(\u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mop\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# Navigate to the website and manually solve the CAPTCHA\u001b[39;00m\n\u001b[1;32m 7\u001b[0m driver\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://airquality.cpcb.gov.in/ccr/#/caaqm-dashboard-all/caaqm-landing\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", |
82 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py:45\u001b[0m, in \u001b[0;36mWebDriver.__init__\u001b[0;34m(self, options, service, keep_alive)\u001b[0m\n\u001b[1;32m 42\u001b[0m service \u001b[38;5;241m=\u001b[39m service \u001b[38;5;28;01mif\u001b[39;00m service \u001b[38;5;28;01melse\u001b[39;00m Service()\n\u001b[1;32m 43\u001b[0m options \u001b[38;5;241m=\u001b[39m options \u001b[38;5;28;01mif\u001b[39;00m options \u001b[38;5;28;01melse\u001b[39;00m Options()\n\u001b[0;32m---> 45\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 46\u001b[0m \u001b[43m \u001b[49m\u001b[43mbrowser_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mDesiredCapabilities\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCHROME\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mbrowserName\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[43m \u001b[49m\u001b[43mvendor_prefix\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mgoog\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 48\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 49\u001b[0m \u001b[43m \u001b[49m\u001b[43mservice\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mservice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeep_alive\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_alive\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", |
83 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py:66\u001b[0m, in \u001b[0;36mChromiumDriver.__init__\u001b[0;34m(self, browser_name, vendor_prefix, options, service, keep_alive)\u001b[0m\n\u001b[1;32m 57\u001b[0m executor \u001b[38;5;241m=\u001b[39m ChromiumRemoteConnection(\n\u001b[1;32m 58\u001b[0m remote_server_addr\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mservice\u001b[38;5;241m.\u001b[39mservice_url,\n\u001b[1;32m 59\u001b[0m browser_name\u001b[38;5;241m=\u001b[39mbrowser_name,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 62\u001b[0m ignore_proxy\u001b[38;5;241m=\u001b[39moptions\u001b[38;5;241m.\u001b[39m_ignore_local_proxy,\n\u001b[1;32m 63\u001b[0m )\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 66\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mcommand_executor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexecutor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mquit()\n", |
84 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:241\u001b[0m, in \u001b[0;36mWebDriver.__init__\u001b[0;34m(self, command_executor, keep_alive, file_detector, options, locator_converter, web_element_cls, client_config)\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_authenticator_id \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 240\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstart_client()\n\u001b[0;32m--> 241\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstart_session\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcapabilities\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 242\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_fedcm \u001b[38;5;241m=\u001b[39m FedCM(\u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 244\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_websocket_connection \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", |
85 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:329\u001b[0m, in \u001b[0;36mWebDriver.start_session\u001b[0;34m(self, capabilities)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Creates a new session with the desired capabilities.\u001b[39;00m\n\u001b[1;32m 323\u001b[0m \n\u001b[1;32m 324\u001b[0m \u001b[38;5;124;03m:Args:\u001b[39;00m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;124;03m - capabilities - a capabilities dict to start the session with.\u001b[39;00m\n\u001b[1;32m 326\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 328\u001b[0m caps \u001b[38;5;241m=\u001b[39m _create_caps(capabilities)\n\u001b[0;32m--> 329\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mCommand\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mNEW_SESSION\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaps\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvalue\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 330\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msession_id \u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msessionId\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 331\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcaps \u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcapabilities\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", |
86 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:384\u001b[0m, in \u001b[0;36mWebDriver.execute\u001b[0;34m(self, driver_command, params)\u001b[0m\n\u001b[1;32m 382\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcommand_executor\u001b[38;5;241m.\u001b[39mexecute(driver_command, params)\n\u001b[1;32m 383\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m response:\n\u001b[0;32m--> 384\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43merror_handler\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_response\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresponse\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 385\u001b[0m response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvalue\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_unwrap_value(response\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvalue\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 386\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m response\n", |
87 | | - "File \u001b[0;32m/opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py:232\u001b[0m, in \u001b[0;36mErrorHandler.check_response\u001b[0;34m(self, response)\u001b[0m\n\u001b[1;32m 230\u001b[0m alert_text \u001b[38;5;241m=\u001b[39m value[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124malert\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtext\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 231\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exception_class(message, screen, stacktrace, alert_text) \u001b[38;5;66;03m# type: ignore[call-arg] # mypy is not smart enough here\u001b[39;00m\n\u001b[0;32m--> 232\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exception_class(message, screen, stacktrace)\n", |
88 | | - "\u001b[0;31mSessionNotCreatedException\u001b[0m: Message: session not created: Chrome failed to start: exited normally.\n (session not created: DevToolsActivePort file doesn't exist)\n (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\nStacktrace:\n#0 0x556d1853ab9a <unknown>\n#1 0x556d18220670 <unknown>\n#2 0x556d18258971 <unknown>\n#3 0x556d18254315 <unknown>\n#4 0x556d182a0e66 <unknown>\n#5 0x556d182a04b6 <unknown>\n#6 0x556d18294923 <unknown>\n#7 0x556d182626e7 <unknown>\n#8 0x556d182636de <unknown>\n#9 0x556d1850466b <unknown>\n#10 0x556d18508611 <unknown>\n#11 0x556d184f04e5 <unknown>\n#12 0x556d18509192 <unknown>\n#13 0x556d184d56ef <unknown>\n#14 0x556d185299d8 <unknown>\n#15 0x556d18529ba7 <unknown>\n#16 0x556d185399ec <unknown>\n#17 0x7fc996c7c609 start_thread\n" |
89 | | - ] |
90 | | - } |
91 | | - ], |
| 65 | + "outputs": [], |
92 | 66 | "source": [ |
93 | 67 | "# Set up WebDriver\n", |
94 | 68 | "op = webdriver.ChromeOptions()\n", |
|
115 | 89 | "name": "stdout", |
116 | 90 | "output_type": "stream", |
117 | 91 | "text": [ |
118 | | - "Total stations: 549\n" |
| 92 | + "Total stations: 558\n" |
119 | 93 | ] |
120 | 94 | } |
121 | 95 | ], |
|
135 | 109 | { |
136 | 110 | "data": { |
137 | 111 | "application/vnd.jupyter.widget-view+json": { |
138 | | - "model_id": "5b712b4a44c34ab2828fb21e2e17ff0f", |
| 112 | + "model_id": "bbbf6e731094473995e1a676b3f8c5a4", |
139 | 113 | "version_major": 2, |
140 | 114 | "version_minor": 0 |
141 | 115 | }, |
142 | 116 | "text/plain": [ |
143 | | - "Progress: 0%| | 0/549 [00:00<?, ?it/s]" |
| 117 | + "Progress: 0%| | 0/558 [00:00<?, ?it/s]" |
144 | 118 | ] |
145 | 119 | }, |
146 | 120 | "metadata": {}, |
147 | 121 | "output_type": "display_data" |
| 122 | + }, |
| 123 | + { |
| 124 | + "ename": "KeyboardInterrupt", |
| 125 | + "evalue": "", |
| 126 | + "output_type": "error", |
| 127 | + "traceback": [ |
| 128 | + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
| 129 | + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", |
| 130 | + "Cell \u001b[0;32mIn[4], line 12\u001b[0m\n\u001b[1;32m 10\u001b[0m marker \u001b[38;5;241m=\u001b[39m all_station_markers[marker_id]\n\u001b[1;32m 11\u001b[0m driver\u001b[38;5;241m.\u001b[39mexecute_script(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marguments[0].click();\u001b[39m\u001b[38;5;124m\"\u001b[39m, marker)\n\u001b[0;32m---> 12\u001b[0m \u001b[43mWebDriverWait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdriver\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muntil\u001b[49m\u001b[43m(\u001b[49m\u001b[43mEC\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43melement_to_be_clickable\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mBy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCLASS_NAME\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mclose\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 13\u001b[0m children \u001b[38;5;241m=\u001b[39m driver\u001b[38;5;241m.\u001b[39mfind_elements(By\u001b[38;5;241m.\u001b[39mCLASS_NAME, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcol-md-12\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 14\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStation Name\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m children[\u001b[38;5;241m3\u001b[39m]\u001b[38;5;241m.\u001b[39mtext\n", |
| 131 | + "File \u001b[0;32m/opt/miniconda3/lib/python3.12/site-packages/selenium/webdriver/support/wait.py:102\u001b[0m, in \u001b[0;36mWebDriverWait.until\u001b[0;34m(self, method, message)\u001b[0m\n\u001b[1;32m 100\u001b[0m screen \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(exc, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscreen\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 101\u001b[0m stacktrace \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(exc, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstacktrace\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m--> 102\u001b[0m \u001b[43mtime\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msleep\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_poll\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m time\u001b[38;5;241m.\u001b[39mmonotonic() \u001b[38;5;241m>\u001b[39m end_time:\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", |
| 132 | + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " |
| 133 | + ] |
148 | 134 | } |
149 | 135 | ], |
150 | 136 | "source": [ |
|
273 | 259 | ], |
274 | 260 | "metadata": { |
275 | 261 | "kernelspec": { |
276 | | - "display_name": "zeel_py310", |
| 262 | + "display_name": "base", |
277 | 263 | "language": "python", |
278 | 264 | "name": "python3" |
279 | 265 | }, |
|
287 | 273 | "name": "python", |
288 | 274 | "nbconvert_exporter": "python", |
289 | 275 | "pygments_lexer": "ipython3", |
290 | | - "version": "3.10.15" |
| 276 | + "version": "3.12.2" |
291 | 277 | } |
292 | 278 | }, |
293 | 279 | "nbformat": 4, |
|
0 commit comments