Web scraping-ը, վեբկայքերից տվյալների արդյունահանման գործընթացը, դարձել է էական տեխնիկա տարբեր հավելվածների համար, ներառյալ տվյալների վերլուծությունը, հետազոտությունը և բիզնես հետախուզությունը: Python-ը տրամադրում է հզոր գործիքներ վեբ քերծման համար, և մենք կուսումնասիրենք, թե ինչպես կատարել վեբ գրություն՝ օգտագործելով Python Playwright բրաուզերի ավտոմատացման համար և Selectolax՝ HTML վերլուծության համար: Այս համադրությամբ դուք կարող եք ավտոմատացնել բրաուզերի առաջադրանքները և առանց ջանքերի արժեքավոր տեղեկություններ քաղել վեբ էջերից:

Ինչու՞ օգտագործել Python դրամատուրգը և Selectolax-ը:

Python Playwright-ը բազմակողմանի ավտոմատացման գրադարան է, որը մշակվել է Microsoft-ի կողմից, որը թույլ է տալիս կառավարել վեբ բրաուզերները, ինչպիսիք են Chromium-ը, Firefox-ը և WebKit-ը: Այն ապահովում է հեշտ օգտագործվող API բրաուզերների ավտոմատացման համար և հատկապես օգտակար է վեբ քերծման առաջադրանքների համար, որոնք պահանջում են փոխազդեցություն վեբ էջերի հետ:

Selectolax-ը արագ HTML և XML վերլուծող գրադարան է, որը թույլ է տալիս հեշտությամբ նավարկել HTML փաստաթղթերը: Այն առաջարկում է հարմար շարահյուսություն HTML տարրերից տվյալներ հանելու համար՝ այն դարձնելով իդեալական ընտրություն վեբ էջերը վերլուծելու և կոնկրետ տեղեկություններ հանելու համար:

Rich-ը Python գրադարան է, որը ձեզ հնարավորություն է տալիս գույն և ոճ ավելացնել տերմինալում ձեր տեքստի թողարկմանը: Rich-ի միջոցով դուք կարող եք ցուցադրել առաջադեմ բովանդակություն, ինչպիսիք են աղյուսակները, նշումները և շարահյուսական ընդգծված կոդը՝ ձեր հրամանի տողերի հավելվածները դարձնելով տեսողականորեն ավելի գրավիչ և տեղեկատվական:

Շրջակա միջավայրի կարգավորում. Նախքան վեբ գրության մեջ մտնելը, եկեք կարգավորենք միջավայրը՝ տեղադրելով անհրաժեշտ գրադարանները: Բացեք ձեր տերմինալը և կատարեք հետևյալ հրամանները.

pip install playwright
pip install selectolax
pip install rich

Վեբ գրություն Python դրամատուրգի և Selectolax-ի հետ

Մենք կստեղծենք պարզ Python սկրիպտ, որը քերծում է ապրանքի մասին տեղեկատվությունը առցանց գույքի կայքէջից: Մենք կհանենք յուրաքանչյուր ապրանքի ապրանքի անվանումը և գինը՝ օգտագործելով Python Playwright՝ բրաուզերի փոխազդեցությունները ավտոմատացնելու համար, իսկ Selectolax՝ HTML բովանդակությունը վերլուծելու համար:

# Import the required libraries
from playwright.sync_api import sync_playwright
from selectolax.parser import HTMLParser
from dataclasses import dataclass
from rich import print
import csv

# Define the data class to store product information
@dataclass
class Item:
    asin: str
    title: str
    price: str

# Function to get the HTML content of a webpage given an ASIN
def get_html(page, asin): 
    url = f"https://www.iproperty.com.my/property/seremban/{asin}/"
    page.goto(url)
    html = HTMLParser(page.content())
    return html

# Function to parse the HTML content and extract product information
def parse_html(html, asin):
    title_element = html.css_first("h1[class*=ProjectTitle]")
    price_element = html.css_first("div.property-price")

    if title_element is None or price_element is None:
        return None

    title = title_element.text(strip=True)
    price = price_element.text(strip=True)

    if not title or not price:
        return None

    item = Item(asin=asin, title=title, price=price)
    return item

# Function to read ASIN values from a CSV file
def read_csv():
    with open('products.csv', 'r') as f:
        reader = csv.reader(f)
        return [item[0] for item in reader]

# Function to perform web scraping for a single ASIN
def run(asin):
    pw = sync_playwright().start()
    browser = pw.chromium.launch(headless=False)
    page = browser.new_page()
    html = get_html(page, asin)
    product = parse_html(html, asin)
    browser.close()
    pw.stop()
    return product

# Main function to read ASIN values from CSV and initiate web scraping for each ASIN
def main():
    asins = read_csv()
    for asin in asins:
        product = run(asin)
        if product:
            print(product)

if __name__ == "__main__":
    main()

Համատեղելով Playwright-ի հզոր հնարավորությունները և Selectolax-ի օգտատիրոջ համար հարմար վերլուծական առանձնահատկությունները՝ մենք հեշտությամբ կարող ենք ավտոմատացնել բրաուզերի առաջադրանքները և արժեքավոր տվյալներ կորզել վեբ էջերից:

Web scraping-ը բացում է ինտերնետից տեղեկատվություն հավաքելու, տվյալների վրա հիմնված որոշումներ կայացնելու և կրկնվող առաջադրանքների ավտոմատացման հնարավորությունների աշխարհ: Այնուամենայնիվ, կարևոր է օգտագործել վեբ քերծումը պատասխանատու կերպով և հարգել կայքի ծառայության պայմանները և դրույքաչափերի սահմանները՝ հնարավոր իրավական և էթիկական խնդիրներից խուսափելու համար:

Սկսեք քերել վեբ տվյալները Python-ով, և հնարավորություններն անսահման են: Շնորհավոր քերծվածք: