BeautifulSoup을 사용하여 전자 상거래 사이트를 긁어 csv 파일에 데이터를 저장하십시오.

beautifulsoup을 사용하여 Flipkart 웹 사이트를 스크랩하고 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 목록에 NamePrice를 추가합니다.



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

감사합니다 😊

좋은 웹페이지 즐겨찾기