Conas sonraí Netflix a scrape ag baint úsáide as Python

Tuairimí: 0

Is féidir le sonraí a bhaint ó Netflix sonraí domhain a sholáthar faoi scannáin agus sraith teilifíse lena n-áirítear míreanna cosúil le teidil, dátaí scaoilte, catagóirí ábhair, agus ábhar forbhreathnaithe. Léiríonn an t -alt seo conas sonraí a bhaint as leathanaigh scannáin Netflix iolracha ag baint úsáide as Python, iarratais, agus lxml. Ós rud é nach soláthraíonn Netflix API oscailte do shonraí scannáin, ceadaíonn scríobadh dúinn sonraí luachmhara ábhair a bhailiú ar féidir leo tacú le moltaí, anailís ábhair, agus feidhmchláir eile.

Riachtanais agus suiteáil

Mar thús, déan cinnte go bhfuil na leabharlanna requests agus lxml suiteáilte. Úsáid na horduithe seo chun do thimpeallacht a chur ar bun:


pip install requests
pip install lxml

Tá na leabharlanna seo riachtanach chun iarratais HTTP a sheoladh chuig leathanaigh Netflix agus chun ábhar HTML a pharsáil chun sonraí riachtanacha a bhaint amach.

An scraper a chur ar bun

Chun rochtain a fháil ar Leathanaigh Netflix, teastaíonn liosta URLanna uainn a ndéanfaimid athrá orthu chun sonraí scannáin a aisghabháil. Scriosfaidh an rang teagaisc seo teideal scannáin Netflix, bliain, fad, tuairisc, seánra, agus níos mó ó gach URL leathanach sonraithe.

Ceanntásca agus Socrú Seachvótálaí

Fostaíonn Netflix bearta dochta frith-bot, mar sin is féidir le ceanntásca cearta agus seachvótálaithe (más gá) cosc ​​a chur ar bhrath a chosc. Sa script seo, déanaimid aithris ar fhíor-bhrabhsálaí trí cheanntásca saincheaptha a chur ar bun le gníomhaire úsáideora, roghanna teanga, agus paraiméadair eile, rud a fhágann go bhfuil cuma níos dlisteanaí ar ár n-iarratais.



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',
    'priority': 'u=0, i',
    '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',
}

Más gá, is féidir seachvótálaithe a chur leis chun iarratais a dhéanamh ó sheoltaí éagsúla IP, rud a laghdóidh an dóchúlacht go ndéanfaí bratach air. Sampla de sheachvótálaí a chomhtháthú le fíordheimhniú seoladh IP:



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

Miondealú cód céim ar chéim

Céim 1. Liosta URL a bhunú

Sonraímid liosta de Netflix Movie URLanna, a dhéanfaidh ár script trí shonraí a bhaint amach.



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

Céim 2. An t -iarratas HTTP a sheoladh

Tá rochtain ar gach URL leis an modh requests.get(), ag dul thar na ceanntásca chun braite a sheachaint.



response = requests.get(url, headers=headers)

Céim 3. An Ábhar HTML a pharsáil

Ag baint úsáide as lxml, déanaimid an freagra HTML a pharsáil chun sonraí a nascleanúint agus a bhaint ag baint úsáide as abairtí XPath.


from lxml.html import fromstring
parser = fromstring(response.text)

Céim 4. Eilimintí Sonraí a Bhaint Amach

Ag baint úsáide as XPath, gabhaimid sonraí riachtanacha scannán cosúil le teideal, bliain, fad, tuairisc, seánra, fotheidil, agus níos mó. Seo thíos an chaoi a mbaintear gach réimse:


title = parser.xpath('//h1[@class="title-title"]/text()')[0]
year = parser.xpath('//span[@data-uia="item-year"]/text()')[0]
duration = parser.xpath('//span[@class="duration"]/text()')[0]
description = parser.xpath('//div[@class="title-info-synopsis"]/text()')[0]
maturity_number = parser.xpath('//span[@class="maturity-number"]/text()')[0]
starring = parser.xpath('//span[@data-uia="info-starring"]/text()')[0]
genre = parser.xpath('//a[@data-uia="item-genre"]/text()')[0]
genres = parser.xpath('//span[@data-uia="more-details-item-genres"]/a/text()')
subtitles = ''.join(parser.xpath('//span[@data-uia="more-details-item-subtitle"]/text()'))
audio = ''.join(parser.xpath('//span[@data-uia="more-details-item-audio"]/text()'))

Céim 5. Sonraí a shábháil i liosta

Déanaimid sonraí gach scannáin a stóráil i bhfoclóir agus déanaimid é a chur le liosta. Coinníonn an cur chuige seo sonraí eagraithe agus réidh le sábháil i CSV.



data = {
    'title': title,
    'year': year,
    'duration': duration,
    'description': description,
    'maturity_number': maturity_number,
    'starring': starring,
    'genre': genre,
    'genres': genres,
    'subtitles': subtitles,
    'audio': audio
}
extracted_data.append(data)

Céim 6. Sonraí a scríobh chuig CSV

Mar fhocal scoir, tar éis gach URL a athrá, scríobhaimid na sonraí carntha chuig comhad CSV.



import csv

with open('netflix_data.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=extracted_data[0].keys())
    writer.writeheader()
    writer.writerows(extracted_data)

Cód iomlán

Comhcheanglaíonn an cód iomlán gach céim le ceanntásca agus thus seachvótálaí.


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',
    'priority': 'u=0, i',
    '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[@class="title-title"]/text()')[0]
    year = parser.xpath('//span[@data-uia="item-year"]/text()')[0]
    duration = parser.xpath('//span[@class="duration"]/text()')[0]
    description = parser.xpath('//div[@class="title-info-synopsis"]/text()')[0]
    maturity_number = parser.xpath('//span[@class="maturity-number"]/text()')[0]
    starring = parser.xpath('//span[@data-uia="info-starring"]/text()')[0]
    genre = parser.xpath('//a[@data-uia="item-genre"]/text()')[0]
    genres = parser.xpath('//span[@data-uia="more-details-item-genres"]/a/text()')
    subtitles = ''.join(parser.xpath('//span[@data-uia="more-details-item-subtitle"]/text()'))
    audio = ''.join(parser.xpath('//span[@data-uia="more-details-item-audio"]/text()'))

    data = {
        'title': title,
        'year': year,
        'duration': duration,
        'description': description,
        'maturity_number': maturity_number,
        'starring': starring,
        'genre': genre,
        'genres': genres,
        'subtitles': subtitles,
        'audio': audio
    }
    extracted_data.append(data)

with open('netflix_data.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=extracted_data[0].keys())
    writer.writeheader()
    writer.writerows(extracted_data)
print('saved into netflix_data.csv')

Scrapáil Sonraí Netflix le Python Soláthraíonn sé bealach praiticiúil chun rochtain a fháil ar shonraí ábhair gan API oifigiúil. Trí úsáid a bhaint as ceanntásca, seachvótálaithe, agus teicnící parsála, bailímid agus sábhálaimid sonraí luachmhara go héifeachtach. Is féidir an script seo a oiriúnú le haghaidh anailísíocht, moltaí, nó monatóireacht ábhair éagsúla, ag cuidiú leat sonraí Netflix a úsáid le haghaidh feidhmeanna níos leithne.

Tuairimí:

0 tuairimí