Conas Sonraí TripAdvisor a Scrape Ag baint úsáide as Python

Tuairimí: 0

Is tairseach taistil a úsáidtear go forleathan é TripAdvisor nuair a scríobhann úsáideoirí athbhreithnithe le haghaidh cóiríochta, bia, fámaireachta, srl. D'fhéadfadh na sonraí a shaibhriú le hathbhreithnithe TripAdvisor a bheith cabhrach le haghaidh anailíse taistil, staidéir iomaitheora, etc. Sa treoir seo, clúdóimid an chaoi ar féidir sonraí TripAdvisor a bhaint as Python agus na sonraí a stóráiltear i bhformáid CSV.

Suiteáil na leabharlanna riachtanacha

Chun an scraper seo a thógáil, bainfimid úsáid as na leabharlanna Python seo a leanas:

  • requests: Chun iarratais HTTP a dhéanamh chun ábhar leathanaigh a fháil.
  • lxml: Chun ábhar HTML a pharsáil agus eilimintí a bhaint le XPath.

Suiteáil na leabharlanna riachtanacha ag baint úsáide as pip:


pip install requests lxml

Ról na gceanntásca agus na seachvótálaithe i scríobadh sonraí éifeachtach

Agus sonraí á scríobadh ó láithreáin ghréasáin mar TripAdvisor, tá sé ríthábhachtach na ceanntásca iarratais a chumrú i gceart, go háirithe an gníomhaire úsáideora. Tríd an gceanntásc seo a shocrú, is féidir leat do chuid iarratas a cheilt mar iad siúd a thagann ó úsáideoirí dlisteanacha, a laghdaíonn an baol go dtarlódh do ghníomhaíochtaí scríobtha a spreagann bloic mar gheall ar phatrúin tráchta neamhghnácha. Ina theannta sin, tá sé riachtanach seachfhreastalaithe a úsáid chun srianta a bhaineann le líon na n -iarratas a cheadaítear ó sheoladh IP amháin a shárú, rud a éascaíonn iarrachtaí bailithe sonraí níos fairsinge.

Treoir Céim ar Chéim maidir le Scraping TripAdvisor

Rachaimid tríd an bpróiseas chun liosta de leathanaigh óstáin a scríobadh, sonraí a bhaint, agus iad a shábháil i gcomhad CSV. Déanaimis gach cuid a bhriseadh síos.

Céim 1. Leabharlanna allmhairithe agus URLanna a bhunú

Chun tús a chur leis, allmhairiú na leabharlanna riachtanacha:


import requests
from lxml.html import fromstring
import csv

Ansin, sainmhínigh liosta URLanna do na leathanaigh óstáin atá beartaithe agat chun sonraí a scrape a scrape ó:


urls_list = [
    'Https link',
    'Https link'
]

Céim 2. Ceanntásca a leagan síos le haghaidh iarratas

Chun a chinntiú go ndéanann do chuid iarrataí aithris orthu siúd ó fhíor -bhrabhsálaí, tá sé ríthábhachtach ceanntásca a chumrú i gceart. Cuidíonn an chéim seo le córais chosanta frith-bot a sheachbhóthar ar shuíomhanna gréasáin agus laghdaíonn sé an baol go gcuirfear bac 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',
    'cache-control': 'no-cache',
    'dnt': '1',
    'pragma': 'no-cache',
    'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
    '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',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
}

Céim 3. Ag baint úsáide as Proxies

Is féidir le seachvótálaithe cabhrú le srianta IP-bhunaithe a sheachbhóthar. Sa sampla thíos, bainimid úsáid as seachfhreastalaí le fíordheimhniú seoladh IP. Seo an chaoi le seachfhreastalaí a chur le hiarratais.


proxies = {
    'http': 'http://your_proxy_address:port',
    'https': 'http://your_proxy_address:port',
}
response = requests.get(url, headers=headers, proxies=proxies)

Céim 4. Iarratais a sheoladh agus an HTML a pharsáil

I gcás gach URL, seol iarratas agus parse an freagra html:


extracted_data = []
for url in urls_list:
    response = requests.get(url, headers=headers)  # Cuir proxies=proxies más gá
    parser = fromstring(response.text)

Céim 5. Sonraí a Bhaint Amach Ag baint úsáide as XPath

Ag baint úsáide as XPath, is féidir linn díriú ar ghnéithe sonracha ar an leathanach:


 title = parser.xpath('//h1[@data-automation="mainH1"]/text()')[0]
    about = parser.xpath('//div[@class="_T FKffI bmUTE"]/div/div/text()')[0].strip()
    images_url = parser.xpath('//div[@data-testid="media_window_test"]/div/div/button/picture/source/@srcset')
    price = parser.xpath('//div[@data-automation="commerce_module_visible_price"]/text()')[0]
    ratings = parser.xpath('//div[@class="jVDab W f u w GOdjs"]/@aria-label')[0].split(' ')[0]
    features = parser.xpath('//div[@class="f Q2 _Y tyUdl"]/div[2]/span/span/span/text()')
    reviews = parser.xpath('//span[@class="JguWG"]/span//text()')
    listing_by = parser.xpath('//div[@class="biGQs _P pZUbB KxBGd"]/text()')[0]
    similar_experiences = parser.xpath('//div[@data-automation="shelfCard"]/a/@href')

Céim 6. Stóráil sonraí eastósctha

Stóráil an t -eolas eastósctha i bhfoclóir agus cuir ar liosta í:


data = {
        'title': title,
        'about': about,
        'price': price,
        'listing by': listing_by,
        'ratings': ratings,
        'image_urls': images_url,
        'features': features,
        'reviews': reviews,
        'similar_experiences': similar_experiences
    }
    extracted_data.append(data)

Céim 7. Sonraí a shábháil ar CSV

Tar éis scríobtha, sábháil na sonraí i gcomhad CSV:


csv_columns = ['title', 'about', 'price', 'listing by', 'ratings', 'image_urls', 'features', 'reviews', 'similar_experiences']

with open("tripadvisor_data.csv", 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
    writer.writeheader()
    for data in extracted_data:
        writer.writerow(data)

Cód Comhlánaithe


import requests
from lxml.html import fromstring
import csv

urls_list = [
    'Https link',
    'Https link'
]

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',
    'cache-control': 'no-cache',
    'dnt': '1',
    'pragma': 'no-cache',
    'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
    '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',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
}

proxies = {
    'http': 'http://your_proxy_address:port',
    'https': 'http://your_proxy_address:port',
}

extracted_data = []
for url in urls_list:
    response = requests.get(url, headers=headers, proxies=proxies)  
    parser = fromstring(response.text)
    
    title = parser.xpath('//h1[@data-automation="mainH1"]/text()')[0]
    about = parser.xpath('//div[@class="_T FKffI bmUTE"]/div/div/text()')[0].strip()
    images_url = parser.xpath('//div[@data-testid="media_window_test"]/div/div/button/picture/source/@srcset')
    price = parser.xpath('//div[@data-automation="commerce_module_visible_price"]/text()')[0]
    ratings = parser.xpath('//div[@class="jVDab W f u w GOdjs"]/@aria-label')[0].split(' ')[0]
    features = parser.xpath('//div[@class="f Q2 _Y tyUdl"]/div[2]/span/span/span/text()')
    reviews = parser.xpath('//span[@class="JguWG"]/span//text()')
    listing_by = parser.xpath('//div[@class="biGQs _P pZUbB KxBGd"]/text()')[0]
    similar_experiences = parser.xpath('//div[@data-automation="shelfCard"]/a/@href')
    
    data = {
        'title': title,
        'about': about,
        'price': price,
        'listing by': listing_by,
        'ratings': ratings,
        'image_urls': images_url,
        'features': features,
        'reviews': reviews,
        'similar_experiences': similar_experiences
    }
    extracted_data.append(data)

csv_columns = ['title', 'about', 'price', 'listing by', 'ratings', 'image_urls', 'features', 'reviews', 'similar_experiences']

with open("tripadvisor_data.csv", 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
    writer.writeheader()
    for data in extracted_data:
        writer.writerow(data)

print('saved into tripadvisor_data.csv')

Ní hamháin go leagann an treoir seo bunús teicniúil le haghaidh scríobadh sonraí ach osclaíonn sé bealaí le haghaidh anailíse cuimsitheacha san earnáil turasóireachta. Tugann na modhanna agus na teicnící atá sonraithe anseo cumhacht ag úsáideoirí níos doimhne a dhéanamh i dtreochtaí margaidh agus iompraíochtaí tomhaltóirí. Tá léargais den sórt sin ríthábhachtach chun straitéisí láidre bainistíochta cáil a fhorbairt agus chun anailísí iomaíocha a dhéanamh. Tríd an treoir seo a ghiaráil, is féidir le húsáideoirí a dtuiscint ar an dinimic laistigh den tionscal turasóireachta a fheabhsú, rud a fhágann gur féidir cinntí eolasacha straitéiseacha a cheapadh a spreagann rath.

Tuairimí:

0 tuairimí