├── .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 |
4 |
5 |
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 |
4 |
5 |
16 |
17 |
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 | " model | \n",
267 | " price | \n",
268 | " rating | \n",
269 | " sim | \n",
270 | " processor | \n",
271 | " ram | \n",
272 | " battery | \n",
273 | " display | \n",
274 | " camera | \n",
275 | " card | \n",
276 | " os | \n",
277 | "
\n",
278 | " \n",
279 | " \n",
280 | " \n",
281 | " | 0 | \n",
282 | " OnePlus Nord CE 2 Lite 5G | \n",
283 | " ₹18,999 | \n",
284 | " 81 | \n",
285 | " Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi | \n",
286 | " Snapdragon 695, Octa Core, 2.2 GHz Processor | \n",
287 | " 6 GB RAM, 128 GB inbuilt | \n",
288 | " 5000 mAh Battery with 33W Fast Charging | \n",
289 | " 6.59 inches, 1080 x 2412 px, 120 Hz Display wi... | \n",
290 | " 64 MP + 2 MP + 2 MP Triple Rear & 16 MP Front ... | \n",
291 | " Memory Card (Hybrid), upto 1 TB | \n",
292 | " Android v12 | \n",
293 | "
\n",
294 | " \n",
295 | " | 1 | \n",
296 | " Samsung Galaxy A14 5G | \n",
297 | " ₹16,499 | \n",
298 | " 75 | \n",
299 | " Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi | \n",
300 | " Exynos 1330, Octa Core, 2.4 GHz Processor | \n",
301 | " 4 GB RAM, 64 GB inbuilt | \n",
302 | " 5000 mAh Battery with 15W Fast Charging | \n",
303 | " 6.6 inches, 1080 x 2408 px, 90 Hz Display with... | \n",
304 | " 50 MP + 2 MP + 2 MP Triple Rear & 13 MP Front ... | \n",
305 | " Memory Card Supported, upto 1 TB | \n",
306 | " Android v13 | \n",
307 | "
\n",
308 | " \n",
309 | " | 2 | \n",
310 | " Samsung Galaxy F23 5G (6GB RAM + 128GB) | \n",
311 | " ₹16,999 | \n",
312 | " 80 | \n",
313 | " Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi, NFC | \n",
314 | " Snapdragon 750G, Octa Core, 2.2 GHz Processor | \n",
315 | " 6 GB RAM, 128 GB inbuilt | \n",
316 | " 5000 mAh Battery with 25W Fast Charging | \n",
317 | " 6.6 inches, 1080 x 2408 px, 120 Hz Display wit... | \n",
318 | " 50 MP + 8 MP + 2 MP Triple Rear & 8 MP Front C... | \n",
319 | " Memory Card Supported, upto 1 TB | \n",
320 | " Android v12 | \n",
321 | "
\n",
322 | " \n",
323 | " | 3 | \n",
324 | " Motorola Moto G62 5G | \n",
325 | " ₹14,999 | \n",
326 | " 81 | \n",
327 | " Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi | \n",
328 | " Snapdragon 695, Octa Core, 2.2 GHz Processor | \n",
329 | " 6 GB RAM, 128 GB inbuilt | \n",
330 | " 5000 mAh Battery with Fast Charging | \n",
331 | " 6.55 inches, 1080 x 2400 px, 120 Hz Display wi... | \n",
332 | " 50 MP + 8 MP + 2 MP Triple Rear & 16 MP Front ... | \n",
333 | " Memory Card (Hybrid), upto 1 TB | \n",
334 | " Android v12 | \n",
335 | "
\n",
336 | " \n",
337 | " | 4 | \n",
338 | " Realme 10 Pro Plus | \n",
339 | " ₹24,999 | \n",
340 | " 82 | \n",
341 | " Dual Sim, 3G, 4G, 5G, VoLTE, Wi-Fi | \n",
342 | " Dimensity 1080, Octa Core, 2.6 GHz Processor | \n",
343 | " 6 GB RAM, 128 GB inbuilt | \n",
344 | " 5000 mAh Battery with 67W Fast Charging | \n",
345 | " 6.7 inches, 1080 x 2412 px, 120 Hz Display wit... | \n",
346 | " 108 MP + 8 MP + 2 MP Triple Rear & 16 MP Front... | \n",
347 | " Memory Card Not Supported | \n",
348 | " Android v13 | \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 | " | 1015 | \n",
366 | " Eunity U1 Bull | \n",
367 | " ₹599 | \n",
368 | " NaN | \n",
369 | " Dual Sim | \n",
370 | " 1.77 MHz Processor | \n",
371 | " 32 MB RAM, 32 MB inbuilt | \n",
372 | " 1000 mAh Battery | \n",
373 | " 1.8 inches, 176 x 220 px Display | \n",
374 | " 0.3 MP Rear Camera | \n",
375 | " Memory Card Supported, upto 16 GB | \n",
376 | " NaN | \n",
377 | "
\n",
378 | " \n",
379 | " | 1016 | \n",
380 | " MTR M1900 Plus | \n",
381 | " ₹890 | \n",
382 | " NaN | \n",
383 | " Dual Sim | \n",
384 | " 1.4 MHz Processor | \n",
385 | " 32 MB RAM, 32 MB inbuilt | \n",
386 | " 3000 mAh Battery | \n",
387 | " 1.77 inches, 280 x 240 px Display | \n",
388 | " 0.3 MP Rear Camera | \n",
389 | " Memory Card Supported | \n",
390 | " No FM Radio | \n",
391 | "
\n",
392 | " \n",
393 | " | 1017 | \n",
394 | " MTR M1900 | \n",
395 | " ₹890 | \n",
396 | " NaN | \n",
397 | " Dual Sim | \n",
398 | " 1.4 MHz Processor | \n",
399 | " 32 MB RAM, 32 MB inbuilt | \n",
400 | " 3000 mAh Battery | \n",
401 | " 1.77 inches, 280 x 240 px Display | \n",
402 | " 0.3 MP Rear Camera | \n",
403 | " No FM Radio | \n",
404 | " NaN | \n",
405 | "
\n",
406 | " \n",
407 | " | 1018 | \n",
408 | " MTR M2163 | \n",
409 | " ₹749 | \n",
410 | " NaN | \n",
411 | " Dual Sim | \n",
412 | " 256 MHz Processor | \n",
413 | " 32 MB RAM, 32 MB inbuilt | \n",
414 | " 1100 mAh Battery | \n",
415 | " 1.77 inches, 240 x 320 px Display | \n",
416 | " 0.3 MP Rear Camera | \n",
417 | " Memory Card Supported | \n",
418 | " No FM Radio | \n",
419 | "
\n",
420 | " \n",
421 | " | 1019 | \n",
422 | " MTR M7 | \n",
423 | " ₹1,050 | \n",
424 | " NaN | \n",
425 | " Dual Sim | \n",
426 | " 32 MB RAM, 32 MB inbuilt | \n",
427 | " 1100 mAh Battery | \n",
428 | " 1.44 inches, 240 x 320 px Display | \n",
429 | " 0.3 MP Rear Camera | \n",
430 | " Memory Card Supported, upto 32 GB | \n",
431 | " Bluetooth | \n",
432 | " NaN | \n",
433 | "
\n",
434 | " \n",
435 | "
\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 |
--------------------------------------------------------------------------------