Conas ailt mheánmhéide a scrape ag baint úsáide as python

Tuairimí: 0

Is féidir le hearraí a bhaint as meán a bheith thar a bheith tábhachtach chun críocha amhail meastóireacht ábhair, bailiú sonraí, nó monatóireacht a dhéanamh ar údair agus a gcuid saothar. Sa rang teagaisc seo, foghlaimeoimid conas meán a scrape - láithreán gréasáin alt do scríbhneoirí, ag baint úsáide as teanga chlársceidealaithe Python. Pléifimid conas is féidir sonraí cosúil le teideal an Airteagail, ainm an údair, ainm an fhoilseacháin, agus an comhlacht téacs féin a bhaint as url gréasáin ar leith de alt meánach.

Riachtanais

Maidir leis an rang teagaisc seo, beimid ag scríobadh an ailt seo ar mheán: “9 maisitheoirí tógtha python a dhéanann do chód a bharrfheabhsú go suntasach”.

Sula dtosaíonn tú, suiteáil na leabharlanna seo a leanas:

  • Requests: Iarratais HTTP a sheoladh chuig Meánach.
  • lxml: Chun ábhar HTML a pharsáil.
  • Pandas: Chun na sonraí a shábháil ar chomhad CSV.

Suiteáil iad leis na horduithe seo a leanas:


pip install requests
pip install lxml 
pip install pandas

Tuiscint a fháil ar an tábhacht a bhaineann le ceanntásca agus seachvótálaithe

Úsáideann Meánach teicnící braite bot chun scríobadh neamhúdaraithe a chosc. Tá ceanntásca agus seachvótálaithe cuí ríthábhachtach chun braite bot a sheachaint agus chun scríobadh freagrach a dhéanamh.

Ceanntásca : Déanann siad seo iarratas a ionsamhlú amhail is dá mbeadh sé ag teacht ó fhíor -bhrabhsálaí. Ina measc tá faisnéis cosúil leis an gcineál brabhsálaí, cineálacha ábhair a nglactar leo, agus iompar caching.


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': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
    '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/129.0.0.0 Safari/537.36',
}

Proxies : Is féidir le seachvótálaithe do sheoladh IP a cheilt, agus é á rothlú go tréimhsiúil chun go mbeidh sé níos dóchúla go gcuirfidh na hiarratais bac ar mheán. Seo sampla de é a úsáid le fíordheimhniú seoladh IP:


proxies = {
    'http': 'IP:PORT',
    'https': 'IP:PORT'
}

response = requests.get(
 'https://medium.com/techtofreedom/9-python-built-in-decorators-that-optimize-your-code-significantly-bc3f661e9017',
    headers=headers,
    proxies=proxies
)

Iarratas a sheoladh chuig Meánach

Seo an chaoi leis na ceanntásca a bhunú agus iarratas a sheoladh chuig URL an Airteagal:


import requests

# Ceanntásca chun fíor -iarratas brabhsálaí a insamhladh
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': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
    '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/129.0.0.0 Safari/537.36',
}

url = 'https://medium.com/techtofreedom/9-python-built-in-decorators-that-optimize-your-code-significantly-bc3f661e9017'
response = requests.get(url, headers=headers)

Sonraí a Bhaint Amach

Nuair a bhíonn an t -ábhar leathanaigh againn, is féidir linn é a pharsáil agus faisnéis ábhartha a bhaint amach.

Parsáil ábhar html

Bainfimid úsáid as LXML chun an freagra HTML a pharsáil agus eilimintí sonracha a bhaint amach. Seo conas é a dhéanamh:


from lxml.html import fromstring

parser = fromstring(response.text)

# Sonraí Sliocht
title = parser.xpath('//h1[@data-testid="storyTitle"]/text()')[0]
author = parser.xpath('//a[@data-testid="authorName"]/text()')[0]
publication_name = parser.xpath('//a[@data-testid="publicationName"]/p/text()')[0]
publication_date = parser.xpath('//span[@data-testid="storyPublishDate"]/text()')[0]
content = '\n '.join(parser.xpath('//div[@class="ci bh ga gb gc gd"]/p/text()'))
auth_followers = parser.xpath('//span[@class="pw-follower-count bf b bg z bk"]/a/text()')[0]
sub_title = parser.xpath('//h2[@id="1de6"]/text()')[0]

Anois, cruthóimid foclóir chun na sonraí go léir a shealbhú. Fágann sé seo go bhfuil sé níos éasca é a shábháil ar chomhad CSV.


# Sábháil sonraí i bhfoclóir
article_data = {
    'Title': title,
    'Author': author,
    'Publication': publication_name,
    'Date': publication_date,
    'Followers': auth_followers,
    'Subtitle': sub_title,
    'Content': content,
}

print(article_data)

Sonraí a shábháil ar chomhad CSV

Mar fhocal scoir, déanaimis na sonraí a shábháil ar chomhad CSV le haghaidh anailíse breise nó coimeád taifead.


import pandas as pd

# Foclóir a thiontú go DataFrame agus Save As CSV
df = pd.DataFrame([article_data])
df.to_csv('medium_article_data.csv', index=False)
print("Data saved to medium_article_data.csv")

Cód Iomlán

Seo an cód iomlán chun sonraí an earra mheánmhéide a scríobadh:


import requests
from lxml.html import fromstring
import pandas as pd

# Ceanntásca chun aithris a dhéanamh ar bhrabhsálaí
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': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
    '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/129.0.0.0 Safari/537.36',
}


proxies = {
    'http': 'IP:PORT',
    'https': 'IP:PORT'
}

# Ag iarraidh an leathanach
url = 'https://medium.com/techtofreedom/9-python-built-in-decorators-that-optimize-your-code-significantly-bc3f661e9017'
response = requests.get(url, headers=headers, proxies=proxies)

# Ag parsáil an leathanaigh
parser = fromstring(response.text)

# Sonraí Sliocht
title = parser.xpath('//h1[@data-testid="storyTitle"]/text()')[0]
author = parser.xpath('//a[@data-testid="authorName"]/text()')[0]
publication_name = parser.xpath('//a[@data-testid="publicationName"]/p/text()')[0]
publication_date = parser.xpath('//span[@data-testid="storyPublishDate"]/text()')[0]
content = '\n '.join(parser.xpath('//div[@class="ci bh ga gb gc gd"]/p/text()'))
auth_followers = parser.xpath('//span[@class="pw-follower-count bf b bg z bk"]/a/text()')[0]
sub_title = parser.xpath('//h2[@id="1de6"]/text()')[0]

# Sonraí a shábháil
article_data = {
    'Title': title,
    'Author': author,
    'Publication': publication_name,
    'Date': publication_date,
    'Followers': auth_followers,
    'Subtitle': sub_title,
    'Content': content,
}

# Sábháil le CSV
df = pd.DataFrame([article_data])
df.to_csv('medium_article_data.csv', index=False)
print("Data saved to medium_article_data.csv")

Ba chóir ábhar a scríobadh ó mheán a dhéanamh go freagrach. Is féidir le hualach iomarcach iarratais ar fhreastalaithe tionchar a imirt ar fheidhmíocht na seirbhíse, agus d'fhéadfadh sonraí a scríobadh gan cead téarmaí úsáide an tsuímh ghréasáin a shárú. Seiceáil i gcónaí an comhad robots.txt agus téarmaí sula scríobann tú aon láithreán gréasáin.

Tuairimí:

0 tuairimí