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.
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:
Suiteáil iad leis na horduithe seo a leanas:
pip install requests
pip install lxml
pip install pandas
Ú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
)
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)
Nuair a bhíonn an t -ábhar leathanaigh againn, is féidir linn é a pharsáil agus faisnéis ábhartha a bhaint amach.
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)
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")
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