Maidir le hanailís iomaíoch, monatóireacht praghsanna, agus taighde margaidh tá sé tábhachtach sonraí táirge a scrape ó láithreáin ghréasáin ríomhthráchtála. Is féidir leat Python a úsáid chun sonraí a scríobadh ó leathanaigh táirge go héifeachtach. Sa treoir seo, taispeánfaimid conas faisnéis faoi tháirgí a scrape ó siopaí ar líne ag baint úsáide as meascán d'iarratais agus LXML.
Is éard atá i gceist le scríobadh ríomhthráchtála ná sonraí táirge a bhaint amach mar ainmneacha, praghsanna, agus IDanna ó siopaí ar líne. Déanann Python, lena leabharlanna ildánach, an tasc seo éifeachtach agus simplí. Sa treoir seo, déanfaimid faisnéis faoi tháirgí a scrape ó láithreán gréasáin Costco.
Sula dtéann tú isteach sa phróiseas scríobtha, cinntigh go bhfuil na leabharlanna Python riachtanacha suiteáilte agat:
pip install requests
pip install lxml
Díreoimid ar ainmneacha táirgí, gnéithe táirge, agus brandaí táirgí a bhaint as leathanaigh táirge ar leith ar an láithreán gréasáin.
Chun sonraí a bhaint as aon láithreán gréasáin, ní mór duit struchtúr an leathanaigh ghréasáin a thuiscint. Oscail leathanach láithreán gréasáin agus déan iniúchadh ar na heilimintí is mian leat a scrape (m.sh., ainm táirge, gnéithe branda, srl.).
Ar an gcéad dul síos, bainfimid úsáid as an leabharlann iarratais chun iarratais HTTP GET a sheoladh chuig na leathanaigh táirge. Bunóimid na ceanntásca iarratais freisin chun aithris a dhéanamh ar iarratas fíor -bhrabhsálaí.
import requests
# Liosta URLanna Táirgí le Scrape
urls = [
"https://www.costco.com/kirkland-signature-men's-sneaker.product.4000216649.html",
"https://www.costco.com/adidas-ladies'-puremotion-shoe.product.4000177646.html"
]
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-US,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1',
'pragma': 'no-cache',
'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
'sec-ch-ua-mobile': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
}
# Lúb trí gach URL agus iarratas GET a sheoladh
for url in urls:
response = requests.get(url, headers=headers)
if response.status_code == 200:
html_content = response.text
# Cuirfear tuilleadh próiseála leis i gcéimeanna ina dhiaidh sin
else:
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Ag baint úsáide as LXML, bainfimid na pointí sonraí riachtanacha as an HTML parsáilte.
from lxml import html
# Liosta chun sonraí scríobtha a stóráil
scraped_data = []
# Lúb trí gach URL agus iarratas GET a sheoladh
for url in urls:
response = requests.get(url)
if response.status_code == 200:
html_content = response.content
# Ábhar HTML a pharsáil le LXML
tree = html.fromstring(html_content)
# Sonraí a bhaint as XPath ag baint úsáide as XPath
product_name = tree.xpath('//h1[@automation-id="productName"]/text()')[0].strip()
product_feature = tree.xpath('//ul[@class="pdp-features"]//li//text()')
product_brand = tree.xpath('//div[@itemprop="brand"]/text()')[0].strip()
# Cuir sonraí as an liosta ar an liosta
scraped_data.append({'Product Name': product_name, 'Product Feature': product_feature, 'Brand': product_brand})
else:
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
# Priontáil na sonraí scríobtha
for item in scraped_data:
print(item)
Is minic a chuireann láithreáin ghréasáin bearta frith-bot i bhfeidhm. Is féidir le húsáid seachvótálaithe agus gníomhairí úsáideoirí rothlacha cabhrú le braite a sheachaint.
Ag baint úsáide as seachvótálaithe le húdarú IP:
proxies = {
'http': 'http://your_proxy_ip:your_proxy_port',
'https': 'https://your_proxy_ip:your_proxy_port'
}
response = requests.get(url, proxies=proxies)
Gníomhairí úsáideoirí rothlacha:
import random
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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
# Cuir níos mó gníomhairí úsáideoirí leis de réir mar is gá
]
headers['user-agent'] = random.choice(user_agents)
response = requests.get(url, headers=headers)
Ar deireadh, sábhálfaimid na sonraí scríobtha go comhad CSV le haghaidh tuilleadh anailíse.
import csv
csv_file = 'costco_products.csv'
fieldnames = ['Product Name', 'Product Feature', 'Brand']
# Sonraí a scríobh chuig comhad CSV
try:
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
for item in scraped_data:
writer.writerow(item)
print(f"Data saved to {csv_file}")
except IOError:
print(f"Error occurred while writing data to {csv_file}")
import requests
import urllib3
from lxml import html
import csv
import random
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# Liosta URLanna Táirgí le Scrape
urls = [
"https://www.costco.com/kirkland-signature-men's-sneaker.product.4000216649.html",
"https://www.costco.com/adidas-ladies'-puremotion-shoe.product.4000177646.html"
]
# ceannóirí
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-US,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1',
'pragma': 'no-cache',
'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
'sec-ch-ua-mobile': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
}
# Liosta de ghníomhairí úsáideoirí le haghaidh iarrataí rothlacha
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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
# Cuir níos mó gníomhairí úsáideoirí leis de réir mar is gá
]
# Liosta na seachvótálaithe d'iarratais rothlacha
proxies = [
{'http': 'http://your_proxy_ip:your_proxy_port', 'https': 'https://your_proxy_ip:your_proxy_port'},
{'http': 'http://your_proxy_ip2:your_proxy_port2', 'https': 'https://your_proxy_ip2:your_proxy_port2'},
# Cuir níos mó seachvótálaithe leis de réir mar is gá
]
# Liosta chun sonraí scríobtha a stóráil
scraped_data = []
# Lúb trí gach URL agus iarratas GET a sheoladh
for url in urls:
# Roghnaigh Gníomhaire Úsáideora Randamach le haghaidh na gCeanntásca Iarratais
headers['user-agent'] = random.choice(user_agents)
# Roghnaigh seachvótálaí randamach don iarraidh
proxy = random.choice(proxies)
# Seol http iarr iarratas chuig an URL le ceanntásca agus seachvótálaí
response = requests.get(url, headers=headers, proxies=proxy, verify=False)
if response.status_code == 200:
# Stóráil an t -ábhar HTML ón bhfreagra
html_content = response.content
# Ábhar HTML a pharsáil le LXML
tree = html.fromstring(html_content)
# Sonraí a bhaint as XPath ag baint úsáide as XPath
product_name = tree.xpath('//h1[@automation-id="productName"]/text()')[0].strip()
product_feature = tree.xpath('//ul[@class="pdp-features"]//li//text()')
product_brand = tree.xpath('//div[@itemprop="brand"]/text()')[0].strip()
# Cuir sonraí as an liosta ar an liosta
scraped_data.append({'Product Name': product_name, 'Product Feature': product_feature, 'Brand': product_brand})
else:
# Teachtaireacht Earráid Priontáil Má theipeann ar an Iarratas
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
# Socrú comhad CSV
csv_file = 'costco_products.csv'
fieldnames = ['Product Name', 'Product Feature', 'Brand']
# Sonraí a scríobh chuig comhad CSV
try:
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
for item in scraped_data:
writer.writerow(item)
print(f"Data saved to {csv_file}")
except IOError:
# Priontáil Teachtaireacht Earráide Má theipeann ar an Scríbhneoireacht chun Comhad
print(f"Error occurred while writing data to {csv_file}")
Is modh éifeachtach é Python a úsáid chun scrape ó shuíomhanna ríomhthráchtála ar nós Costco chun faisnéis faoi tháirgí a bhailiú chun anailís a dhéanamh air chomh maith le cinntí straitéiseacha a dhéanamh. Mar thoradh ar úsáid cheart na leabharlanna e.e., iarratais chomh maith le LXML tá próisis eastósctha uathoibrithe ar féidir leo ábhar HTML a láimhseáil gan dearmad a dhéanamh ar chur i bhfeidhm API frith-BOT go héifeachtach. Ba chóir a thabhairt faoi deara go gcaithfear prótacail scríobtha eiticiúla a leanúint i gcónaí.
Tuairimí: 0