├── .idea ├── .gitignore ├── misc.xml ├── inspectionProfiles │ ├── profiles_settings.xml │ └── Project_Default.xml ├── advanced-web-scraping.iml └── modules.xml ├── ajio.py ├── campusx.py ├── test.py ├── smartprix.py └── smartprix-phones.ipynb /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/advanced-web-scraping.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | -------------------------------------------------------------------------------- /ajio.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | from selenium import webdriver 4 | from selenium.webdriver.chrome.service import Service 5 | 6 | s = Service('C:/Users/Nitish/Desktop/chromedriver.exe') 7 | 8 | driver = webdriver.Chrome(service = s) 9 | 10 | driver.get('https://www.ajio.com/men-backpacks/c/830201001') 11 | 12 | old_height = driver.execute_script('return document.body.scrollHeight') 13 | 14 | counter = 1 15 | while True: 16 | 17 | 18 | driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') 19 | time.sleep(2) 20 | 21 | new_height = driver.execute_script('return document.body.scrollHeight') 22 | 23 | print(counter) 24 | counter += 1 25 | print(old_height) 26 | print(new_height) 27 | 28 | if new_height == old_height: 29 | break 30 | 31 | old_height = new_height 32 | 33 | 34 | 35 | html = driver.page_source 36 | 37 | with open('ajio.html','w',encoding='utf-8') as f: 38 | f.write(html) -------------------------------------------------------------------------------- /campusx.py: -------------------------------------------------------------------------------- 1 | # open google.com 2 | # search campusx 3 | # learnwith.campusx.in 4 | # dsmp course page 5 | from selenium import webdriver 6 | from selenium.webdriver.chrome.service import Service 7 | from selenium.webdriver.common.by import By 8 | from selenium.webdriver.common.keys import Keys 9 | import time 10 | 11 | s = Service("C:/Users/Nitish/Desktop/chromedriver.exe") 12 | 13 | driver = webdriver.Chrome(service = s) 14 | 15 | driver.get('http://google.com') 16 | time.sleep(2) 17 | 18 | # fetch the search input box using xpath 19 | user_input = driver.find_element(by=By.XPATH, value='/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input') 20 | user_input.send_keys('Campusx') 21 | time.sleep(1) 22 | 23 | user_input.send_keys(Keys.ENTER) 24 | time.sleep(1) 25 | 26 | link = driver.find_element(by=By.XPATH, value='//*[@id="rso"]/div[2]/div/div/div[1]/div/div/div[1]/div/a') 27 | link.click() 28 | 29 | time.sleep(1) 30 | 31 | link2 = driver.find_element(by=By.XPATH, value='/html/body/div[1]/header/section[2]/a[5]') 32 | link2.click() 33 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | from selenium import webdriver 4 | from selenium.webdriver.chrome.service import Service 5 | from selenium.webdriver.common.by import By 6 | 7 | s = Service('C:/Users/Nitish/Desktop/chromedriver.exe') 8 | 9 | driver = webdriver.Chrome(service = s) 10 | 11 | driver.get('https://www.smartprix.com/mobiles') 12 | time.sleep(1) 13 | 14 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/aside/div/div[5]/div[2]/label[1]/input').click() 15 | time.sleep(1) 16 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/aside/div/div[5]/div[2]/label[2]/input').click() 17 | 18 | time.sleep(2) 19 | 20 | max = 500 21 | current = 0 22 | 23 | while current < max: 24 | 25 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/div[1]/div[2]/div[3]').click() 26 | time.sleep(1) 27 | ##app > main > div:nth-child(1) > div:nth-child(4) > div.sm-products.list.size-m.img-wide > div:nth-child(1) 28 | print(len(driver.find_elements(by=By.XPATH, value='//*[@id="app"]'))) 29 | 30 | #html = driver.page_source 31 | 32 | #with open('smartprix.html','w',encoding='utf-8') as f: 33 | #f.write(html) 34 | 35 | -------------------------------------------------------------------------------- /smartprix.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | from selenium import webdriver 4 | from selenium.webdriver.chrome.service import Service 5 | from selenium.webdriver.common.by import By 6 | 7 | s = Service('C:/Users/Nitish/Desktop/chromedriver.exe') 8 | 9 | driver = webdriver.Chrome(service = s) 10 | 11 | driver.get('https://www.smartprix.com/mobiles') 12 | time.sleep(1) 13 | 14 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/aside/div/div[5]/div[2]/label[1]/input').click() 15 | time.sleep(1) 16 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/aside/div/div[5]/div[2]/label[2]/input').click() 17 | 18 | time.sleep(2) 19 | 20 | old_height = driver.execute_script('return document.body.scrollHeight') 21 | while True: 22 | 23 | driver.find_element(by=By.XPATH, value='//*[@id="app"]/main/div[1]/div[2]/div[3]').click() 24 | time.sleep(1) 25 | 26 | new_height = driver.execute_script('return document.body.scrollHeight') 27 | 28 | print(old_height) 29 | print(new_height) 30 | 31 | if new_height == old_height: 32 | break 33 | 34 | old_height = new_height 35 | 36 | html = driver.page_source 37 | 38 | with open('smartprix.html','w',encoding='utf-8') as f: 39 | f.write(html) 40 | 41 | -------------------------------------------------------------------------------- /smartprix-phones.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "9c2c4b29", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "with open('smartprix.html','r',encoding='utf-8') as f:\n", 11 | " html = f.read()" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 16, 17 | "id": "1ff31419", 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "from bs4 import BeautifulSoup\n", 22 | "import numpy as np\n", 23 | "import pandas as pd" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 4, 29 | "id": "4bcb7521", 30 | "metadata": {}, 31 | "outputs": [], 32 | "source": [ 33 | "soup = BeautifulSoup(html,'lxml')" 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": 8, 39 | "id": "33b07f59", 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "containers = soup.find_all('div',{'class':'sm-product has-tag has-features has-actions'})" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 25, 49 | "id": "18618e90", 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "names = []\n", 54 | "prices = []\n", 55 | "ratings = []\n", 56 | "sim = []\n", 57 | "processor = []\n", 58 | "ram = []\n", 59 | "battery = []\n", 60 | "display = []\n", 61 | "camera = []\n", 62 | "card = []\n", 63 | "os = []\n", 64 | "\n", 65 | "for i in soup.find_all('div',{'class':'sm-product has-tag has-features has-actions'}):\n", 66 | " try:\n", 67 | " names.append(i.find('h2').text)\n", 68 | " except:\n", 69 | " names.append(np.nan)\n", 70 | " try:\n", 71 | " prices.append(i.find('span',{'class':'price'}).text)\n", 72 | " except:\n", 73 | " price.append(np.nan)\n", 74 | " try:\n", 75 | " ratings.append(i.find('div',{'class':'score rank-2-bg'}).find('b').text)\n", 76 | " except:\n", 77 | " ratings.append(np.nan)\n", 78 | " \n", 79 | " x = i.find('ul',{'class':'sm-feat specs'}).find_all('li')\n", 80 | " try:\n", 81 | " sim.append(x[0].text)\n", 82 | " except:\n", 83 | " sim.append(np.nan)\n", 84 | " try:\n", 85 | " processor.append(x[1].text)\n", 86 | " except:\n", 87 | " processor.append(np.nan)\n", 88 | " try: \n", 89 | " ram.append(x[2].text)\n", 90 | " except:\n", 91 | " ram.append(np.nan)\n", 92 | " try:\n", 93 | " battery.append(x[3].text)\n", 94 | " except:\n", 95 | " battery.append(np.nan)\n", 96 | " try:\n", 97 | " display.append(x[4].text)\n", 98 | " except:\n", 99 | " display.append(np.nan)\n", 100 | " try:\n", 101 | " camera.append(x[5].text)\n", 102 | " except:\n", 103 | " camera.append(np.nan)\n", 104 | " try:\n", 105 | " card.append(x[6].text)\n", 106 | " except:\n", 107 | " card.append(np.nan)\n", 108 | " try:\n", 109 | " os.append(x[7].text)\n", 110 | " except:\n", 111 | " os.append(np.nan)\n", 112 | " \n", 113 | " " 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 19, 119 | "id": "e6c0d496", 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "data": { 124 | "text/plain": [ 125 | "1020" 126 | ] 127 | }, 128 | "execution_count": 19, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | } 132 | ], 133 | "source": [ 134 | "len(name)" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 20, 140 | "id": "05fb4caf", 141 | "metadata": {}, 142 | "outputs": [ 143 | { 144 | "data": { 145 | "text/plain": [ 146 | "1020" 147 | ] 148 | }, 149 | "execution_count": 20, 150 | "metadata": {}, 151 | "output_type": "execute_result" 152 | } 153 | ], 154 | "source": [ 155 | "len(price)" 156 | ] 157 | }, 158 | { 159 | "cell_type": "code", 160 | "execution_count": 21, 161 | "id": "2e0181b8", 162 | "metadata": {}, 163 | "outputs": [ 164 | { 165 | "data": { 166 | "text/plain": [ 167 | "1020" 168 | ] 169 | }, 170 | "execution_count": 21, 171 | "metadata": {}, 172 | "output_type": "execute_result" 173 | } 174 | ], 175 | "source": [ 176 | "len(specs)" 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": 22, 182 | "id": "7f8bcf4c", 183 | "metadata": {}, 184 | "outputs": [], 185 | "source": [ 186 | "df = pd.DataFrame({\n", 187 | " 'model':name,\n", 188 | " 'price':price,\n", 189 | " 'rating':specs\n", 190 | "})" 191 | ] 192 | }, 193 | { 194 | "cell_type": "code", 195 | "execution_count": 24, 196 | "id": "6732de28", 197 | "metadata": {}, 198 | "outputs": [ 199 | { 200 | "data": { 201 | "text/plain": [ 202 | "model 0\n", 203 | "price 0\n", 204 | "rating 227\n", 205 | "dtype: int64" 206 | ] 207 | }, 208 | "execution_count": 24, 209 | "metadata": {}, 210 | "output_type": "execute_result" 211 | } 212 | ], 213 | "source": [ 214 | "df.isnull().sum()" 215 | ] 216 | }, 217 | { 218 | "cell_type": "code", 219 | "execution_count": 26, 220 | "id": "d89eea5c", 221 | "metadata": {}, 222 | "outputs": [], 223 | "source": [ 224 | "df = pd.DataFrame({\n", 225 | " 'model':names,\n", 226 | " 'price':prices,\n", 227 | " 'rating':ratings,\n", 228 | " 'sim':sim,\n", 229 | " 'processor':processor,\n", 230 | " 'ram':ram,\n", 231 | " 'battery':battery,\n", 232 | " 'display':display,\n", 233 | " 'camera':camera,\n", 234 | " 'card':card,\n", 235 | " 'os':os\n", 236 | "})" 237 | ] 238 | }, 239 | { 240 | "cell_type": "code", 241 | "execution_count": 29, 242 | "id": "bcf04385", 243 | "metadata": {}, 244 | "outputs": [ 245 | { 246 | "data": { 247 | "text/html": [ 248 | "
\n", 249 | "\n", 262 | "\n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | "
modelpriceratingsimprocessorrambatterydisplaycameracardos
0OnePlus Nord CE 2 Lite 5G₹18,99981Dual Sim, 3G, 4G, 5G, VoLTE, Wi-FiSnapdragon 695, Octa Core, 2.2 GHz Processor6 GB RAM, 128 GB inbuilt5000 mAh Battery with 33W Fast Charging6.59 inches, 1080 x 2412 px, 120 Hz Display wi...64 MP + 2 MP + 2 MP Triple Rear & 16 MP Front ...Memory Card (Hybrid), upto 1 TBAndroid v12
1Samsung Galaxy A14 5G₹16,49975Dual Sim, 3G, 4G, 5G, VoLTE, Wi-FiExynos 1330, Octa Core, 2.4 GHz Processor4 GB RAM, 64 GB inbuilt5000 mAh Battery with 15W Fast Charging6.6 inches, 1080 x 2408 px, 90 Hz Display with...50 MP + 2 MP + 2 MP Triple Rear & 13 MP Front ...Memory Card Supported, upto 1 TBAndroid v13
2Samsung Galaxy F23 5G (6GB RAM + 128GB)₹16,99980Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi, NFCSnapdragon 750G, Octa Core, 2.2 GHz Processor6 GB RAM, 128 GB inbuilt5000 mAh Battery with 25W Fast Charging6.6 inches, 1080 x 2408 px, 120 Hz Display wit...50 MP + 8 MP + 2 MP Triple Rear & 8 MP Front C...Memory Card Supported, upto 1 TBAndroid v12
3Motorola Moto G62 5G₹14,99981Dual Sim, 3G, 4G, 5G, VoLTE, Wi-FiSnapdragon 695, Octa Core, 2.2 GHz Processor6 GB RAM, 128 GB inbuilt5000 mAh Battery with Fast Charging6.55 inches, 1080 x 2400 px, 120 Hz Display wi...50 MP + 8 MP + 2 MP Triple Rear & 16 MP Front ...Memory Card (Hybrid), upto 1 TBAndroid v12
4Realme 10 Pro Plus₹24,99982Dual Sim, 3G, 4G, 5G, VoLTE, Wi-FiDimensity 1080, Octa Core, 2.6 GHz Processor6 GB RAM, 128 GB inbuilt5000 mAh Battery with 67W Fast Charging6.7 inches, 1080 x 2412 px, 120 Hz Display wit...108 MP + 8 MP + 2 MP Triple Rear & 16 MP Front...Memory Card Not SupportedAndroid v13
....................................
1015Eunity U1 Bull₹599NaNDual Sim1.77 MHz Processor32 MB RAM, 32 MB inbuilt1000 mAh Battery1.8 inches, 176 x 220 px Display0.3 MP Rear CameraMemory Card Supported, upto 16 GBNaN
1016MTR M1900 Plus₹890NaNDual Sim1.4 MHz Processor32 MB RAM, 32 MB inbuilt3000 mAh Battery1.77 inches, 280 x 240 px Display0.3 MP Rear CameraMemory Card SupportedNo FM Radio
1017MTR M1900₹890NaNDual Sim1.4 MHz Processor32 MB RAM, 32 MB inbuilt3000 mAh Battery1.77 inches, 280 x 240 px Display0.3 MP Rear CameraNo FM RadioNaN
1018MTR M2163₹749NaNDual Sim256 MHz Processor32 MB RAM, 32 MB inbuilt1100 mAh Battery1.77 inches, 240 x 320 px Display0.3 MP Rear CameraMemory Card SupportedNo FM Radio
1019MTR M7₹1,050NaNDual Sim32 MB RAM, 32 MB inbuilt1100 mAh Battery1.44 inches, 240 x 320 px Display0.3 MP Rear CameraMemory Card Supported, upto 32 GBBluetoothNaN
\n", 436 | "

1020 rows × 11 columns

\n", 437 | "
" 438 | ], 439 | "text/plain": [ 440 | " model price rating \\\n", 441 | "0 OnePlus Nord CE 2 Lite 5G ₹18,999 81 \n", 442 | "1 Samsung Galaxy A14 5G ₹16,499 75 \n", 443 | "2 Samsung Galaxy F23 5G (6GB RAM + 128GB) ₹16,999 80 \n", 444 | "3 Motorola Moto G62 5G ₹14,999 81 \n", 445 | "4 Realme 10 Pro Plus ₹24,999 82 \n", 446 | "... ... ... ... \n", 447 | "1015 Eunity U1 Bull ₹599 NaN \n", 448 | "1016 MTR M1900 Plus ₹890 NaN \n", 449 | "1017 MTR M1900 ₹890 NaN \n", 450 | "1018 MTR M2163 ₹749 NaN \n", 451 | "1019 MTR M7 ₹1,050 NaN \n", 452 | "\n", 453 | " sim \\\n", 454 | "0 Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi \n", 455 | "1 Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi \n", 456 | "2 Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi, NFC \n", 457 | "3 Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi \n", 458 | "4 Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi \n", 459 | "... ... \n", 460 | "1015 Dual Sim \n", 461 | "1016 Dual Sim \n", 462 | "1017 Dual Sim \n", 463 | "1018 Dual Sim \n", 464 | "1019 Dual Sim \n", 465 | "\n", 466 | " processor \\\n", 467 | "0 Snapdragon 695, Octa Core, 2.2 GHz Processor \n", 468 | "1 Exynos 1330, Octa Core, 2.4 GHz Processor \n", 469 | "2 Snapdragon 750G, Octa Core, 2.2 GHz Processor \n", 470 | "3 Snapdragon 695, Octa Core, 2.2 GHz Processor \n", 471 | "4 Dimensity 1080, Octa Core, 2.6 GHz Processor \n", 472 | "... ... \n", 473 | "1015 1.77 MHz Processor \n", 474 | "1016 1.4 MHz Processor \n", 475 | "1017 1.4 MHz Processor \n", 476 | "1018 256 MHz Processor \n", 477 | "1019 32 MB RAM, 32 MB inbuilt \n", 478 | "\n", 479 | " ram battery \\\n", 480 | "0 6 GB RAM, 128 GB inbuilt 5000 mAh Battery with 33W Fast Charging \n", 481 | "1 4 GB RAM, 64 GB inbuilt 5000 mAh Battery with 15W Fast Charging \n", 482 | "2 6 GB RAM, 128 GB inbuilt 5000 mAh Battery with 25W Fast Charging \n", 483 | "3 6 GB RAM, 128 GB inbuilt 5000 mAh Battery with Fast Charging \n", 484 | "4 6 GB RAM, 128 GB inbuilt 5000 mAh Battery with 67W Fast Charging \n", 485 | "... ... ... \n", 486 | "1015 32 MB RAM, 32 MB inbuilt 1000 mAh Battery \n", 487 | "1016 32 MB RAM, 32 MB inbuilt 3000 mAh Battery \n", 488 | "1017 32 MB RAM, 32 MB inbuilt 3000 mAh Battery \n", 489 | "1018 32 MB RAM, 32 MB inbuilt 1100 mAh Battery \n", 490 | "1019 1100 mAh Battery 1.44 inches, 240 x 320 px Display \n", 491 | "\n", 492 | " display \\\n", 493 | "0 6.59 inches, 1080 x 2412 px, 120 Hz Display wi... \n", 494 | "1 6.6 inches, 1080 x 2408 px, 90 Hz Display with... \n", 495 | "2 6.6 inches, 1080 x 2408 px, 120 Hz Display wit... \n", 496 | "3 6.55 inches, 1080 x 2400 px, 120 Hz Display wi... \n", 497 | "4 6.7 inches, 1080 x 2412 px, 120 Hz Display wit... \n", 498 | "... ... \n", 499 | "1015 1.8 inches, 176 x 220 px Display \n", 500 | "1016 1.77 inches, 280 x 240 px Display \n", 501 | "1017 1.77 inches, 280 x 240 px Display \n", 502 | "1018 1.77 inches, 240 x 320 px Display \n", 503 | "1019 0.3 MP Rear Camera \n", 504 | "\n", 505 | " camera \\\n", 506 | "0 64 MP + 2 MP + 2 MP Triple Rear & 16 MP Front ... \n", 507 | "1 50 MP + 2 MP + 2 MP Triple Rear & 13 MP Front ... \n", 508 | "2 50 MP + 8 MP + 2 MP Triple Rear & 8 MP Front C... \n", 509 | "3 50 MP + 8 MP + 2 MP Triple Rear & 16 MP Front ... \n", 510 | "4 108 MP + 8 MP + 2 MP Triple Rear & 16 MP Front... \n", 511 | "... ... \n", 512 | "1015 0.3 MP Rear Camera \n", 513 | "1016 0.3 MP Rear Camera \n", 514 | "1017 0.3 MP Rear Camera \n", 515 | "1018 0.3 MP Rear Camera \n", 516 | "1019 Memory Card Supported, upto 32 GB \n", 517 | "\n", 518 | " card os \n", 519 | "0 Memory Card (Hybrid), upto 1 TB Android v12 \n", 520 | "1 Memory Card Supported, upto 1 TB Android v13 \n", 521 | "2 Memory Card Supported, upto 1 TB Android v12 \n", 522 | "3 Memory Card (Hybrid), upto 1 TB Android v12 \n", 523 | "4 Memory Card Not Supported Android v13 \n", 524 | "... ... ... \n", 525 | "1015 Memory Card Supported, upto 16 GB NaN \n", 526 | "1016 Memory Card Supported No FM Radio \n", 527 | "1017 No FM Radio NaN \n", 528 | "1018 Memory Card Supported No FM Radio \n", 529 | "1019 Bluetooth NaN \n", 530 | "\n", 531 | "[1020 rows x 11 columns]" 532 | ] 533 | }, 534 | "execution_count": 29, 535 | "metadata": {}, 536 | "output_type": "execute_result" 537 | } 538 | ], 539 | "source": [ 540 | "df" 541 | ] 542 | }, 543 | { 544 | "cell_type": "code", 545 | "execution_count": null, 546 | "id": "0975e3c7", 547 | "metadata": {}, 548 | "outputs": [], 549 | "source": [] 550 | } 551 | ], 552 | "metadata": { 553 | "kernelspec": { 554 | "display_name": "Python 3 (ipykernel)", 555 | "language": "python", 556 | "name": "python3" 557 | }, 558 | "language_info": { 559 | "codemirror_mode": { 560 | "name": "ipython", 561 | "version": 3 562 | }, 563 | "file_extension": ".py", 564 | "mimetype": "text/x-python", 565 | "name": "python", 566 | "nbconvert_exporter": "python", 567 | "pygments_lexer": "ipython3", 568 | "version": "3.9.7" 569 | } 570 | }, 571 | "nbformat": 4, 572 | "nbformat_minor": 5 573 | } 574 | --------------------------------------------------------------------------------