Python 및 Selenium을 사용한 웹 스크래핑.

데이터는 신뢰할 수 있는 통찰력을 제공하기 때문에 정보에 입각한 의사 결정에 매우 중요합니다. 그러나 분석에 사용하기 전에 데이터를 소싱해야 합니다. 웹 스크래핑은 선택기를 사용하여 웹 사이트에서 특정 정보를 추출하여 웹에서 사용할 수 있는 많은 양의 데이터를 활용하는 데 사용할 수 있는 한 가지 방법입니다.
선택기를 더 잘 이해하려면 this resource 을 확인할 수 있습니다.

셀렌

Selenium은 다양한 브라우저, OS에서 웹 브라우저 및 기능을 자동화하는 데 사용되는 도구이며 다양한 언어로 사용할 수 있습니다.
이 프로젝트에서는 셀레늄과 Chrome 브라우저를 사용합니다.
크롬 버전에 따라 다운로드할 수 있는 크롬 웹 드라이버here가 있어야 합니다.

케냐의 온라인 선물 가게 PURPINK를 긁어 보겠습니다.

스크래핑
브라우저 자동화 및 웹사이트에서 요소 찾기를 위해 셀레늄을 가져옵니다.
헤드리스 모드에서 크롬을 실행하는 가져오기 옵션은 브라우저 창을 만들지 않고도 브라우저를 실행할 수 있음을 의미합니다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


크롬 웹드라이버의 경로와 웹사이트 URL을 지정합니다.

options = Options()
options.add_argument("--headless")  # prevents opening browser window
options = options
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://www.purpink.co.ke/collections/her")


웹사이트의 요소를 검사하여 각 제품의 이름과 가격을 검색하고 결과를 csv 파일에 씁니다.

product_names = driver.find_elements_by_class_name("product-thumbnail__title")
product_prices = driver.find_elements_by_class_name("money")

filename = "purpink.csv"
headers = ("Brand,Price(Ksh) \n")
f = open(filename, "w")
f.write(headers)

for (product, price) in zip(product_names, product_prices):
    firstPrice = price.text.strip("KSh").split(",")
    finalPrice = "".join(firstPrice)
    f.write(product.text + "," + finalPrice + "\n")



전체 프로젝트는 다음을 통해 달성할 수 있습니다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")  # prevents opening browser window
options = options
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://www.purpink.co.ke/collections/her")

product_names = driver.find_elements_by_class_name("product-thumbnail__title")
product_prices = driver.find_elements_by_class_name("money")

filename = "purpink.csv"
headers = ("Brand,Price(Ksh) \n")
f = open(filename, "w")
f.write(headers)

for (product, price) in zip(product_names, product_prices):
    firstPrice = price.text.strip("KSh").split(",")
    finalPrice = "".join(firstPrice)
    f.write(product.text + "," + finalPrice + "\n")


코드 및 csv 결과는 my github 에서 찾을 수 있습니다.

좋은 웹페이지 즐겨찾기