ko
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
Italiano
Gaeilge
اردو
Indonesia
Polski 비즈니스 인텔리전스, 연구, 분석은 웹 스크래핑을 통해 얻을 수 있는 무한한 가능성 중 일부에 불과합니다. Walmart와 같은 본격적인 비즈니스 실체는 필요한 정보를 수집하기에 완벽한 구조를 제공합니다. 다양한 스크래핑 기술을 사용하여 수많은 웹사이트에서 이름, 가격, 리뷰 정보와 같은 Walmart 데이터를 쉽게 스크래핑할 수 있습니다.
이 글에서는 Walmart 데이터를 스크랩하는 방법에 대해 자세히 알아보겠습니다. HTTP 요청을 전송하는 데는 요청을 사용하고 반환된 HTML 문서를 구문 분석하는 데는 lxml을 사용할 것입니다.
여러 리테일 사이트의 제품 데이터를 스크랩하는 데 있어 Python은 가장 효과적인 옵션 중 하나입니다. 추출 프로젝트에 원활하게 통합하는 방법은 다음과 같습니다:
소매업 프로젝트에 이러한 언어를 사용하면 기술적 측면이 복잡해질 뿐만 아니라 분석의 범위와 효율성이 높아져 시장에 대한 심도 있는 지식을 얻고자 하는 전문가에게 최고의 선택이 될 수 있습니다. 이러한 측면은 Walmart 데이터를 스크랩하기로 결정할 때 특히 유용할 수 있습니다.
이제 Walmart 웹 스크래핑 도구 구축부터 시작해 보겠습니다.
시작하려면 컴퓨터에 Python이 설치되어 있는지 확인하세요. 필요한 라이브러리는 pip를 사용하여 다운로드할 수 있습니다:
pip install requests
pip install lxml
pip install urllib3
이제 다음과 같은 라이브러리를 가져와 보겠습니다:
import requests
from lxml import html
import csv
import random
import urllib3
import ssl
Walmart 데이터를 스크랩할 제품 URL 목록은 다음과 같이 추가할 수 있습니다.
product_urls = [
'link with https',
'link with https',
'link with https'
]
Walmart를 웹 스크래핑할 때는 실제 브라우저를 모방하기 위해 올바른 HTTP 헤더, 특히 사용자-에이전트 헤더를 제시하는 것이 중요합니다. 또한 순환 프록시 서버를 사용하여 사이트의 안티 봇 시스템을 우회할 수도 있습니다. 아래 예시에서는 IP 주소별로 프록시 서버 인증을 추가하는 지침과 함께 User-Agent 문자열을 제시합니다.
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
]
proxy = [
'<ip>:<port>',
'<ip>:<port>',
'<ip>:<port>',
]
요청 헤더는 사용자의 브라우저에서 온 것처럼 위장하는 방식으로 설정해야 합니다. Walmart 데이터를 스크랩하려고 할 때 많은 도움이 될 것입니다. 다음은 그 예시입니다:
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'dnt': '1',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
}
기본 단계는 제품 정보를 수용할 구조를 만드는 것입니다.
product_details = []
URL 페이지 열거는 다음과 같은 방식으로 작동합니다: 모든 URL 페이지에 대해 무작위로 선택된 사용자 에이전트와 프록시를 사용하여 GET 요청이 시작됩니다. HTML 응답이 반환되면 이름, 가격 및 리뷰를 포함한 제품 세부 정보를 구문 분석합니다. 관련 세부 정보는 사전 데이터 구조에 저장되며 나중에 이전에 생성된 목록에 추가됩니다.
for url in product_urls:
headers['user-agent'] = random.choice(user_agents)
proxies = {
'http': f'http://{random.choice(proxy)}',
'https': f'http://{random.choice(proxy)}',
}
try:
# URL로 HTTP GET 요청을 보냅니다.
response = requests.get(url=url, headers=headers, proxies=proxies, verify=False)
print(response.status_code)
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f'Error fetching data: {e}')
# lxml을 사용하여 HTML 콘텐츠 구문 분석
parser = html.fromstring(response.text)
# 제품 제목 추출
title = ''.join(parser.xpath('//h1[@id="main-title"]/text()'))
# 추출 제품 가격
price = ''.join(parser.xpath('//span[@itemprop="price"]/text()'))
# 리뷰 세부 정보 추출
review_details = ''.join(parser.xpath('//div[@data-testid="reviews-and-ratings"]/div/span[@class="w_iUH7"]/text()'))
# 추출된 세부 정보를 사전에 저장
product_detail = {
'title': title,
'price': price,
'review_details': review_details
}
# 목록에 제품 세부 정보 추가
product_details.append(product_detail)
제목:
가격:
세부 정보 검토:
with open('walmart_products.csv', 'w', newline='') as csvfile:
fieldnames = ['title', 'price', 'review_details']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for product_detail in product_details:
writer.writerow(product_detail)
Walmart를 웹 스크래핑할 때 Python 전체 스크립트는 아래 제공된 것과 같은 모양입니다. 또한 각 섹션을 더 쉽게 이해할 수 있도록 몇 가지 주석이 제공됩니다.
import requests
from lxml import html
import csv
import random
import urllib3
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# Walmart 데이터를 스크랩할 제품 URL 목록
product_urls = [
'link with https',
'link with https',
'link with https'
]
# 익명성을 위한 무작위 사용자-에이전트 문자열
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
]
# IP 로테이션을 위한 프록시 목록
proxy = [
'<ip>:<port>',
'<ip>:<port>',
'<ip>:<port>',
]
# 브라우저 요청을 모방하는 헤더
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'dnt': '1',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
}
# 빈 목록을 초기화하여 제품 세부 정보를 저장합니다.
product_details = []
# 각 제품 URL을 반복해서 살펴보기
for url in product_urls:
headers['user-agent'] = random.choice(user_agents)
proxies = {
'http': f'http://{random.choice(proxy)}',
'https': f'http://{random.choice(proxy)}',
}
try:
# URL로 HTTP GET 요청을 보냅니다.
response = requests.get(url=url, headers=headers, proxies=proxies, verify=False)
print(response.status_code)
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f'Error fetching data: {e}')
# lxml을 사용하여 HTML 콘텐츠 구문 분석
parser = html.fromstring(response.text)
# 제품 제목 추출
title = ''.join(parser.xpath('//h1[@id="main-title"]/text()'))
# 추출 제품 가격
price = ''.join(parser.xpath('//span[@itemprop="price"]/text()'))
# 리뷰 세부 정보 추출
review_details = ''.join(parser.xpath('//div[@data-testid="reviews-and-ratings"]/div/span[@class="w_iUH7"]/text()'))
# 추출된 세부 정보를 사전에 저장
product_detail = {
'title': title,
'price': price,
'review_details': review_details
}
# 목록에 제품 세부 정보 추가
product_details.append(product_detail)
# 추출한 데이터를 CSV 파일에 쓰기
with open('walmart_products.csv', 'w', newline='') as csvfile:
fieldnames = ['title', 'price', 'review_details']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for product_detail in product_details:
writer.writerow(product_detail)
Python을 사용하여 Walmart 스크래핑 API와 인터페이스하는 경우, Walmart 가격 및 Walmart 리뷰 결과를 효과적으로 스크랩하는 강력한 방법을 개발하는 것이 중요합니다. 이 API는 광범위한 제품 데이터에 대한 직접적인 파이프라인을 제공하여 가격 및 고객 피드백에 대한 실시간 분석을 용이하게 합니다.
이러한 특정 전략을 사용하면 수집된 정보의 정확성과 범위가 향상되어 기업이 시장 변화와 소비자 트렌드에 빠르게 적응할 수 있습니다. Python에서 Walmart API를 전략적으로 적용함으로써 기업은 데이터 수집 프로세스를 최적화하여 종합적인 시장 분석과 정보에 기반한 의사결정을 내릴 수 있습니다.
이 튜토리얼에서는 Python 라이브러리를 사용하여 Walmart 데이터를 스크랩하고 나중에 분석할 수 있도록 CSV 파일로 저장하는 방법을 설명했습니다. 제공된 스크립트는 기본이며, 스크래핑 프로세스의 효율성을 개선하기 위해 수정할 수 있는 시작점 역할을 합니다. 개선 사항으로는 요청 사이에 임의의 시간 간격을 추가하여 사람의 브라우징을 시뮬레이션하고, 사용자 에이전트와 프록시를 사용하여 봇을 마스킹하고, 고급 오류 처리 기능을 구현하여 스크래핑 중단 또는 실패를 해결하는 것 등이 있습니다.
댓글: 0