Treoir ar Conas Sonraí Walmart a Bhaint le Python

Tuairimí: 0

Intleacht ghnó, taighde agus anailís — níl iontu seo ach cuid de na féidearthachtaí gan teorainn a chuireann scrapáil ghréasáin ar fáil. Soláthraíonn eintiteas gnó lánfhorbartha cosúil le Walmart struchtúr foirfe dúinn chun an fhaisnéis riachtanach a bhailiú. Is féidir linn sonraí Walmart cosúil le hainm, praghas agus eolas ar athbhreithnithe a bhaint go héasca óna suíomhanna éagsúla ag úsáid teicnící éagsúla scrapála.

San alt seo roinnfimid an próiseas: conas sonraí Walmart a bhaint. Bainfimid úsáid as requests chun iarratais HTTP a sheoladh agus lxml chun na cáipéisí HTML a fhaightear a pharsáil.

Cén Fáth a Úsáid Python Chun Sonraí Walmart a Bhaint?

Nuair a thagann sé chun sonraí táirgí a bhaint ó shuímh miondíola éagsúla, tá Python ar cheann de na roghanna is éifeachtaí. Seo mar a chomhtháthaíonn sé go foirfe le tionscadail eastósctha:

  1. Leabharlanna ardleibhéil. Cuireann requests le haghaidh idirghníomhú gréasáin agus lxml le haghaidh parsála HTML ar do chumas catalóga ollmhóra a scrabhadh go héasca agus go héifeachtach.
  2. Éasca le húsáid. Le sintéis éasca le húsáid, is féidir le húsáideoirí próisis aisghabhála sonraí a ríomhchlárú fiú gan mórán taithí roimh ré agus dul díreach i mbun gnó.
  3. Tacaíocht pobail. Mar gheall ar an gcasta a bhaineann le suíomhanna miondíola, tá go leor acmhainní agus tacaíocht phobail ar fáil chun cabhrú leat fadhbanna a réiteach.
  4. Bainistíocht sonraí. Anailís dhomhain. Le cabhair ó Pandas chun sonraí a láimhseáil agus Matplotlib chun léiriú amhairc a chruthú, cuireann Python ar chumas an úsáideora sonraí a bhailiú agus a anailísiú ar scála níos leithne.
  5. Bainistiú ábhar dinimiciúil. Le Selenium, bíonn sé indéanta idirghníomhú le heilimintí gréasáin dinimiciúla, rud a chinntíonn bailiú fairsing sonraí fiú ó leathanaigh atá luchtaithe le JavaScript.
  6. Scálú éifeachtach. Agus cumas aige déileáil le tacair sonraí ollmhóra agus bheaga, feidhmíonn Python thar barr le himeacht ama, fiú le gníomhaíochtaí eastósctha sonraí ar scála mór.

Trí theanga den sórt sin a úsáid i dtionscadail miondíola ní hamháin go ndéantar an ghné theicniúil a shimpliú ach méadaítear an éifeachtúlacht agus an scóip anailíse freisin, rud a fhágann gur rogha uachtarach í d’fhoinsí atá ag iarraidh tuiscint dhomhain a fháil ar an margadh. Tá na gnéithe seo fíorúsáideach nuair a chinneann duine sonraí Walmart a bhaint.

Anois, tosaímid ag tógáil uirlis scrapála gréasáin do Walmart.

Timpeallacht a Shocrú Chun Sonraí Walmart a Bhaint

Ar dtús, cinntigh go bhfuil Python suiteáilte ar do ríomhaire. Is féidir na leabharlanna riachtanacha a íoslódáil ag úsáid pip:


pip install requests
pip install  lxml
pip install urllib3

Ansin, déanaimis na leabharlanna seo a iompórtáil:

  • requests – chun leathanaigh ghréasáin a fháil trí HTTP;
  • lxml – chun crainn doiciméid HTML a ghiniúint;
  • CSV – chun sonraí a bhailítear a scríobh isteach i gcomhaid CSV;
  • random – chun proxy agus téad ghníomhairí úsáideora a roghnú.

import requests
from lxml import html
import csv
import random
import urllib3
import ssl

URLanna Táirgí a Shainiú

Is féidir liosta URLanna táirgí a chur leis mar seo chun sonraí Walmart a bhaint.


product_urls = [
    'link with https',
    'link with https',
    'link with https'
]

Teangacha User-Agent agus Seachfhreastalaithe

Nuair atá tú ag scrapáil sonraí ó Walmart, tá sé ríthábhachtach na ceanntásca HTTP cearta a chur isteach, go háirithe an ceanntásc User-Agent, chun brabhsálaí fíor a insamhladh. Ina theannta sin, is féidir córais frith-bot an tsuímh a sheachaint trí úsáid a bhaint as seachfhreastalaithe rothlacha. Sa shampla thíos, taispeántar teangacha User-Agent chomh maith le treoracha chun údarú an tseachfhreastalaí a chur leis trí sheoladh IP.


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>',
]

Ceanntásca do Iarratais

Ba cheart na ceanntásca iarratais a shocrú ar bhealach a dhéanann iad cosúil le teacht ó bhrabhsálaí úsáideora. Cabhróidh sé go mór agus tú ag iarraidh sonraí Walmart a scrabhadh. Seo sampla den chuma atá air:


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',
}

Tús a chur le stóráil sonraí

Is é an príomhchéim ná struchtúr a chruthú a ghlacfaidh le faisnéis faoi tháirgí.


product_details = []

Oibríonn Leathanaigh URL a áirítear ar an mbealach seo a leanas: I gcás gach leathanach URL, cuirtear tús le hiarratas GET le gníomhaire úsáideora a roghnaítear go randamach agus seachvótálaí. Tar éis freagra HTML a thabhairt ar ais, déantar é a pharsáil le haghaidh sonraí an táirge lena n -áirítear an t -ainm, an praghas agus na hathbhreithnithe. Sábháltar na sonraí ábhartha sa struchtúr sonraí foclóra a chuirtear leis an liosta a cruthaíodh roimhe seo.


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:
       # Seol iarratas http GET chuig an URL
       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}')

   # Parse an t -ábhar HTML ag úsáid LXML
   parser = html.fromstring(response.text)
   # Sliocht teideal táirge
   title = ''.join(parser.xpath('//h1[@id="main-title"]/text()'))
   # Sliocht Praghas Táirge
   price = ''.join(parser.xpath('//span[@itemprop="price"]/text()'))
   # Sonraí Athbhreithnithe Sliocht
   review_details = ''.join(parser.xpath('//div[@data-testid="reviews-and-ratings"]/div/span[@class="w_iUH7"]/text()'))

   # Stóráil Sonraí a Bhaintear i bhFoclóir
   product_detail = {
       'title': title,
       'price': price,
       'review_details': review_details
   }
   # Cuir sonraí táirge leis an liosta
   product_details.append(product_detail)

Ceart:

1.png

Praghas:

2.png

Sonraí Athbhreithnithe:

3.png

Sábháil Sonraí go CSV

  1. Cruthaigh comhad nua agus sonraigh CSV mar an cineál comhaid agus socraigh é ar mhodh scríofa.
  2. Sonraigh ainmneacha na réimsí (colúin) do chomhad CSV.
  3. Chun foclóirí a scríobh isteach sa chomhad CSV, cruthaigh réad csv.DictWriter.
  4. Scríobh an chéad ró (ceanntásca) sa chomhad CSV.
  5. Maidir le gach foclóir i product_details, déan lúb tríd agus scríobh an foclóir mar ró i gcomhad 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)

Cód Comhlánaithe

Nuair a scríobhann Walmart Gréasán, beidh script iomlán Python ag breathnú mar an script a sholáthraítear thíos. Seo roinnt tuairimí freisin chun go mbeidh sé níos éasca duit gach rannóg a thuiscint.


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()


# Liosta URLanna Táirgí chun Sonraí Walmart a Scrapáil
product_urls = [
   'link with https',
   'link with https',
   'link with https'
]

# Teaghráin ghníomhaire úsáideora randamaithe le haghaidh anaithnideacht
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'
]

# Liosta seachfhreastalaí le haghaidh uainíochta IP
proxy = [
    '<ip>:<port>',
    '<ip>:<port>',
    '<ip>:<port>',
]


# Ceanntásca chun iarratais ar bhrabhsálaí a aithris
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',
}

# Tús a chur le liosta folamh chun sonraí táirge a stóráil
product_details = []

# Lúb trí gach URL táirge
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:
       # Seol iarratas http Get chuig an URL
       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}')

   # Parse an t -ábhar HTML ag úsáid LXML
   parser = html.fromstring(response.text)
   # Sliocht teideal táirge
   title = ''.join(parser.xpath('//h1[@id="main-title"]/text()'))
   # Sliocht Praghas Táirge
   price = ''.join(parser.xpath('//span[@itemprop="price"]/text()'))
   # Sonraí Athbhreithnithe Sliocht
   review_details = ''.join(parser.xpath('//div[@data-testid="reviews-and-ratings"]/div/span[@class="w_iUH7"]/text()'))

   # Stóráil Sonraí a Bhaintear i bhFoclóir
   product_detail = {
       'title': title,
       'price': price,
       'review_details': review_details
   }
   # Cuir sonraí táirge leis an liosta
   product_details.append(product_detail)

# Scríobh na sonraí eastósctha chuig comhad 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)

Moltaí Breise

Do dhaoine atá ag úsáid Python chun idirghníomhú leis an Walmart scraping API, tá sé ríthábhachtach modhanna láidre a fhorbairt chun praghsanna agus torthaí athbhreithnithe Walmart a scrabhadh go héifeachtach. Soláthraíonn an API seo píblíne dhíreach chuig sonraí táirgí fairsinge, rud a éascaíonn anailísíocht fíor‑ama ar phraghsáil agus aiseolas custaiméirí.

Trí na straitéisí sonracha seo a úsáid, feabhsaítear cruinneas agus scóip an eolais a bhailítear, rud a ligeann do ghnólachtaí oiriúnú go tapa do chuid athruithe margaidh agus treochtaí tomhaltóirí. Trí úsáid straitéiseach a bhaint as Walmart API i Python, is féidir le cuideachtaí a bpróisis bhailithe sonraí a uasmhéadú, ag cinntiú anailís mhargaidh chuimsitheach agus cinnteoireacht eolasach.

Conclúid

San oideachas seo, mhínigh muid conas na leabharlanna Python a úsáid chun sonraí Walmart a scrabhadh agus iad a shábháil i gcomhad CSV le haghaidh anailíse níos déanaí. Is script bhunúsach í an cheann a tugadh, agus is pointe tosaigh í ar féidir leat a mhodhnú chun éifeachtúlacht an phróisis scrapála a fheabhsú. D’fhéadfadh feabhsuithe a bheith san áireamh cosúil le eatraimh ama randamacha idir iarratais chun brabhsáil dhaonna a insamhladh, úsáid a bhaint as user-agents agus seachfhreastalaithe chun an bot a cheilt, agus láimhseáil ard‑earráidí a chur i bhfeidhm chun cur isteach nó teipeanna scrapála a shárú.

Tuairimí:

0 tuairimí