Conas YouTube a Scrapáil Ag Úsáid Python

Tuairimí: 0

Is féidir le sonraí a scríobadh ó YouTube a bheith dúshlánach mar gheall ar a ábhar dinimiciúil agus a bhearta frith-scrapála. Mar sin féin, leis na huirlisí agus na teicnící cearta, is féidir leat faisnéis úsáideach a bhaint go héifeachtach. San alt seo, siúilfimid tú tríd an bpróiseas chun sonraí físe YouTube a scríobadh ag baint úsáide as Python, Playwright, agus LXML.

Socrú Comhshaoil ​​

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

pip install playwright 
pip install lxml

Suiteáil Binaries an Bhrabhsálaí Drámadóir:

playwright install

Chun na hainmhithe brabhsálaí cróimiam a shuiteáil, bain úsáid as an ordú seo a leanas:

playwright install chromium

Chun sonraí YouTube a scríobadh le Python, beidh na leabharlanna seo a leanas de dhíth ort go príomha:

  1. Drámadóir: Leabharlann chumhachtach chun brabhsálaithe gan dídean a uathoibriú, rud a chuireann ar do chumas idirghníomhú le leathanaigh ghréasáin amhail is dá mba rud é gur fíor -úsáideoir thú;
  2. LXML: Leabharlann tapa agus gné-shaibhir chun XML agus HTML a phróiseáil i Python, ag tacú le XPath chun doiciméid a cheistiú;
  3. Modúl CSV: Leabharlann Python atá tógtha isteach chun sonraí eastósctha a shábháil i gcomhad CSV.

Céim 1: Leabharlanna Riachtanacha a Allmhairiú

import asyncio
from playwright.async_api import Playwright, async_playwright
from lxml import html
import csv

Céim 2: Uathoibriú Brabhsálaí gan Dídean

Seoladh brabhsálaí gan dídean leis an drámadóir, téigh go dtí an URL físe YouTube, agus fan go mbeidh an leathanach á luchtú go hiomlán.

Scrollaigh an leathanach chun níos mó tuairimí a luchtú.

browser = await playwright.chromium.launch(headless=True)
context = await browser.new_context()
page = await context.new_page()

# Nascleanúint a dhéanamh ar URL Video YouTube
await page.goto("https://www.youtube.com/watch?v=Ct8Gxo8StBU", wait_until="networkidle")

# Scrollú síos chun níos mó tuairimí a luchtú
for _ in range(20):
    await page.mouse.wheel(0, 200)
    await asyncio.sleep(0.2)

# Ag tabhairt roinnt ama d'ábhar breise a luchtú
await page.wait_for_timeout(1000)

Céim 3: Parsáil Ábhar HTML

Bain úsáid as ábhar HTML an leathanaigh ag baint úsáide as drámadóir agus é a pharsáil le LXML.

# Ábhar an leathanaigh a bhaint
page_content = await page.content()

# An t -ábhar HTML a pharsáil
parser = html.fromstring(page_content)

Céim 4: Eastóscadh Sonraí

Sliocht na pointí sonraí riachtanacha (m.sh., teideal, cainéal, tuairimí) ag baint úsáide as abairtí XPath.

Bailigh na sonraí ábhartha go léir, lena n -áirítear meiteashonraí físe agus tuairimí.

# Sonraí físe a bhaint
title = parser.xpath('//div[@id="title"]/h1/yt-formatted-string/text()')[0]
channel = parser.xpath('//yt-formatted-string[@id="text"]/a/text()')[0]
channel_link = 'https://www.youtube.com' + parser.xpath('//yt-formatted-string[@id="text"]/a/@href')[0]
posted = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[2]
total_views = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[0]
total_comments = parser.xpath('//h2[@id="count"]/yt-formatted-string/span/text()')[0]
comments_list = parser.xpath('//yt-attributed-string[@id="content-text"]/span/text()')

Céim 5: Sonraí a shábháil

Sábháil na sonraí eastósctha i gcomhad CSV le haghaidh anailíse agus stórála éasca.

# Na sonraí a shábháil ar chomhad CSV
with open('youtube_video_data.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(["Title", "Channel", "Channel Link", "Posted", "Total Views", "Total Comments", "Comments"])
    writer.writerow([title, channel, channel_link, posted, total_views, total_comments, ", ".join(comments_list)])

Cur i bhfeidhm seachvótálaí

Tá ról ríthábhachtach ag seachvótálaithe maidir le scríobadh gréasáin, go háirithe agus iad ag déileáil le eastóscadh sonraí ar scála mór nó le suíomhanna le bearta dochta frith-bot cosúil le YouTube. Seo an chaoi a gcuirtear seachvótálaí i bhfeidhm sa script drámadóra:

Socrú seachfhreastalaí:

  1. Úsáidtear an paraiméadar seachfhreastalaí i drámadóir.chromium.launch () chun gach trácht brabhsálaí a chur trí fhreastalaí seachfhreastalaí sonraithe.
  2. Ní mór na sonraí seachfhreastalaí, lena n -áirítear seoladh an fhreastalaí, ainm úsáideora, agus pasfhocal, a chumrú.

browser = await playwright.chromium.launch(
        headless=True,
        proxy={"server": "http://your_proxy_ip:port", "username": "your_username", "password": "your_password"}
    )

Buntáistí a bhaineann le seachvótálaithe a úsáid:

  • Masking IP: Seachvótálaithe Folaigh do sheoladh IP bunaidh, ag laghdú an dóchúlacht go gcuirfí bac ort.
  • Dáileadh Iarratais: Trí sheachvótálaithe a rothlú, is féidir leat iarratais a dháileadh ar sheoltaí éagsúla IP, trácht a dhéanamh ar thrácht ó ilúsáideoirí.
  • Rochtain ar Ábhar Srianta: Is féidir le seachvótálaithe cabhrú le srianta réigiúnacha nó le hábhar rochtana a sheachbhóthar a d'fhéadfadh a bheith teoranta do raonta áirithe IP.

Cinntíonn an cur i bhfeidhm seo go bhfuil sé níos dóchúla go mbraithfidh meicníochtaí frith-bot YouTube do ghníomhaíochtaí scríobtha.

Cur i bhfeidhm an chóid iomlán

Anseo thíos tá an cód iomlán chun sonraí físe YouTube a scrape ag baint úsáide as drámadóir agus LXML, lena n -áirítear cur i bhfeidhm seachvótálaí.

import asyncio
from playwright.async_api import Playwright, async_playwright
from lxml import html
import csv

# Feidhm asynchronous chun sonraí drámadóra a reáchtáil agus sonraí a bhaint amach
async def run(playwright: Playwright) -> None:
    # Brabhsálaí gan dídean a sheoladh le Socruithe seachfhreastalaí
    browser = await playwright.chromium.launch(
        headless=True,
        proxy={"server": "http://your_proxy_ip:port", "username": "your_username", "password": "your_password"}
    )
    context = await browser.new_context()
    page = await context.new_page()

    # Nascleanúint a dhéanamh ar URL Video YouTube
    await page.goto("https://www.youtube.com/watch?v=Ct8Gxo8StBU", wait_until="networkidle")

    # Scrollú síos chun níos mó tuairimí a luchtú
    for _ in range(20):
        await page.mouse.wheel(0, 200)
        await asyncio.sleep(0.2)
    
    # Ag tabhairt roinnt ama d'ábhar breise a luchtú
    await page.wait_for_timeout(1000)
    
    # Ábhar an leathanaigh a bhaint
    page_content = await page.content()

    # Brabhsálaí deiridh
    await context.close()
    await browser.close()

    # An t -ábhar HTML a pharsáil
    parser = html.fromstring(page_content)

    # Sonraí físe a bhaint
    title = parser.xpath('//div[@id="title"]/h1/yt-formatted-string/text()')[0]
    channel = parser.xpath('//yt-formatted-string[@id="text"]/a/text()')[0]
    channel_link = 'https://www.youtube.com' + parser.xpath('//yt-formatted-string[@id="text"]/a/@href')[0]
    posted = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[2]
    total_views = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[0]
    total_comments = parser.xpath('//h2[@id="count"]/yt-formatted-string/span/text()')[0]
    comments_list = parser.xpath('//yt-attributed-string[@id="content-text"]/span/text()')

    # Na sonraí a shábháil ar chomhad CSV
    with open('youtube_video_data.csv', 'w', newline='', encoding='utf-8') as file:
        writer = csv.writer(file)
        writer.writerow(["Title", "Channel", "Channel Link", "Posted", "Total Views", "Total Comments", "Comments"])
        writer.writerow([title, channel, channel_link, posted, total_views, total_comments, ", ".join(comments_list)])

# Ag rith na feidhme asynchronous
async def main():
    async with async_playwright() as playwright:
        await run(playwright)

asyncio.run(main())

Seo rang teagaisc céim ar chéim maidir le Python, drámadóir, agus LXML a úsáid chun sonraí físe éagsúla YouTube a scríobadh, lena n-áirítear tuairimí. Déantar é seo trí sheachvótálaithe a úsáid agus trí chód a reáchtáil chun iompar na mbrabhsálaithe a ionsamhlú chun sonraí dinimiciúla a scríobadh go héifeachtach agus cloí leis na dea -chleachtais i scríobadh. Má theastaíonn faisnéis uait le haghaidh anailíse nó má chruthaíonn tú tacair shonraí, cuideoidh na modhanna sin leat deacrachtaí a bhíonn os comhair na n -ardán YouTube a shárú.

Tuairimí:

0 tuairimí