-
Notifications
You must be signed in to change notification settings - Fork 0
/
Flipkart_mobile_scrap.py
35 lines (27 loc) · 1.15 KB
/
Flipkart_mobile_scrap.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from bs4 import BeautifulSoup
import re
import csv
import pandas as pd
import requests
url = "https://www.flipkart.com/search?sid=tyy%2C4io&otracker=CLP_Filters&p%5B%5D=facets.serviceability%5B%5D%3Dfalse&p%5B%5D=facets.price_range.from%3DMin&p%5B%5D=facets.price_r"
response = requests.get(url)
data = response.text
soup =BeautifulSoup(data, 'html.parser')
products = []
price = []
ratings = []
Actual_Rate = []
Discuounts = []
for a in soup.findAll('a',attrs={'class':'_31qSD5'}):
name = a.find('div',attrs={'class':'_3wU53n'})
prices = a.find('div',attrs={'class':'_1vC4OE _2rQ-NK'})
rate = a.find('div',attrs={'class':'hGSR34'})
Actual_price = a.find('div',attrs={'class':'_3auQ3N _2GcJzG'})
Discount = a.find('div',attrs={'class':'VGWI6T'})
products.append(name.text)
price.append(prices.text)
ratings.append(rate.text)
Actual_Rate.append(Actual_price.text)
Discuounts.append(Discount.text)
df = pd.DataFrame({'Product Name':products, 'Price': price, 'Actual_Price':Actual_Rate, 'Discount': Discuounts, 'Rating':ratings})
df.to_csv('Flipkart_mobile_offers.csv', index=False, encoding='utf-8')