BeautifulSoup을 사용하여 전자 상거래 사이트를 긁어 csv 파일에 데이터를 저장하십시오.
사용된 IDE: PyCharm
먼저 모든 패키지를 하나씩 설치하십시오.
pip install bs4
pip install requests
pip install pandas
모든 모듈 가져오기
import requests
from bs4 import BeautifulSoup
import pandas as pd
requests
HTTP 요청을 보냅니다.BeautifulSoup
웹 페이지에서 모든 콘텐츠 추출(제목 등)pandas
csv 파일을 만듭니다.1단계: '요청'으로 웹 페이지 로드
request
모듈을 사용하면 HTTP 요청을 보낼 수 있습니다. HTTP 요청은 모든 응답 데이터(콘텐츠, 인코딩 등)가 포함된 Response 객체를 반환합니다.url = "https://www.flipkart.com/search?q=laptop&otracker=search&otracker1=search&marketplace=FLIPKART&as-show=on&as=off"
req = requests.get(url)
2단계: BeautifulSoup으로 제목 추출하기
BeautifulSoup은 DOM 트리 탐색, 검색 및 수정을 위한 많은 간단한 메서드를 제공합니다.
제목 추출
page = BeautifulSoup(req.content, "html.parser")
print(page.prettify())
title = page.head
print(title.text)
page.prittify()
페이지의 모든 내용을 멋진 형식으로 인쇄합니다.title.text
페이지 제목 인쇄.호출하지 않고 인쇄
.text
전체 마크업을 인쇄합니다.all_products = []
이 목록에 모든 추출 데이터를 추가합니다
all_products
. 마지막에 이 목록을 인쇄하십시오.3단계: 폐기 시작
products = page.findAll("div", {"class": "_3pLy-c row"})
findAll
는 전체 문서를 스캔한 후 모든 일치 항목을 반환하는 데 사용됩니다.findAll(tag, attributes, recursive, text, limit, keywords)
우리의 경우 이름이 "_3pLy-c row"인
div
태그를 모두 찾습니다.class
요소 목록을 반환합니다. 특정.select()
클래스의 모든 요소를 찾는 select()
메서드입니다. Attr., ID, Class 등으로 요소를 찾습니다.CSS
메서드를 사용하여 추가 줄바꿈/공백을 제거합니다.4단계: 제품 이름 및 가격 추출
for product in products:
lname = product.select("div > div._4rR01T")[0].text.strip()
print(lname)
price = product.select("div > div._30jeq3 ")[0].text.strip()
print(lprice)
all_products.append([lname, lprice])
print("Record Inserted Successfully...")
.strip()
all_products.append
목록에 Name
및 Price
를 추가합니다.print(all_products)
5단계: CSV 파일에 데이터를 추가합니다.
col = ["Name", "Price"]
먼저 열 이름에 대한 목록을 만듭니다.
data = pd.DataFrame(all_products, columns=col)
print(data)
all_products
2차원 배열 또는 행과 열이 있는 테이블과 같은 2차원 데이터 구조입니다.data.to_csv('extract_data.csv', index=False)
DataFrame
pandasto_csv
를 csv 파일로 내보내는 데 사용됩니다.암호
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://www.flipkart.com/search?q=laptop&otracker=search&otracker1=search&marketplace=FLIPKART&as-show=on&as=off'
req = requests.get(url)
page = BeautifulSoup(req.content, "html.parser")
print(page.prettify())
title = page.head
print(title.text)
all_products = []
col = ['Name', 'Price']
products = page.findAll("div", {"class": "_3pLy-c row"})
print(products)
for product in products:
lname = product.select("div > div._4rR01T")[0].text.strip()
print(lname)
price = product.select("div > div._30jeq3 ")[0].text.strip()
print(lprice)
all_products.append([lname, lprice])
print("Record Inserted Successfully...")
data = pd.DataFrame(all_products, columns=col)
print(data)
data.to_csv('laptop_products.csv', index=False)
GitHub
감사합니다 😊
Reference
이 문제에 관하여(BeautifulSoup을 사용하여 전자 상거래 사이트를 긁어 csv 파일에 데이터를 저장하십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/saishj/scrape-e-commerce-site-using-beautifulsoup-and-store-data-in-csv-file-3gmj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)