import requests from bs4 import BeautifulSoup import pandas as pd url = "https://www.flipkart.com/search?q=mobile+phone+under+20000&as=on&as-show=on&otracker=AS_Query_OrganicAutoSuggest_3_19_na_na_na&otracker1=AS_Query_OrganicAutoSuggest_3_19_na_na_na&as-pos=3&as-type=RECENT&suggestionId=mobile+phone+under+20000&requestId=52895815-1a4e-46da-8ae2-4f32bfcb941b&as-backfill=on"response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.content, 'html.parser') product_containers = soup.find_all('div', {'class': '_1AtVbE'}) # Create a list to store the data data = [] for product in product_containers: title_container = product.find('div', {'class': '_4rR01T'}) price_container = product.find('div', {'class': '_30jeq3 _1_WHN1'}) rating_container = product.find('div', {'class': '_3LWZlK'}) specs_container = product.find('ul', {'class': '_1xgFaf'}) link_container = product.find('a', {'class': '_1fQZEK'}, href=True) # Updated line to find the link title = title_container.text.strip() if title_container else None price = price_container.text.strip() if price_container else None rating = rating_container.text.strip() if rating_container else None specs = ', '.join([spec.text.strip() for spec in specs_container.find_all('li')]) if specs_container else None link = f"https://www.flipkart.com{link_container['href']}" if link_container else None data.append({ "Product": title, "Price": price, "Link": link, "Rating": rating, "Specs": specs }) # Convert the data to a pandas DataFrame df = pd.DataFrame(data) # Write the DataFrame to an Excel file df.to_excel("flipkart_mobiles.xlsx", index=False) print("Data has been exported to flipkart_mobiles.xlsx") else: print(f"Failed to retrieve the page. Status code: {response.status_code}"