Is ardán suntasach é Craigslist fós chun rochtain a fháil ar fhógraí sonracha rangaithe sa radharc digiteach reatha. Ag baint úsáide as Python chun sonraí a shruthlíniú, cruthaítear go bhfuil an t -eastóscadh ó na fógraí an -chabhrach. Cumasaítear oibríochtaí scríobtha gréasáin táirgiúla ag na inoiriúnaitheacht agus na leabharlanna láidre i Python mar iarratais nó álainn. Léiríonn an treoir seo i réimse scríobadh Craigslist le Python, ag cur béime ar úsáid BeautifulSoup agus iarratais ar eastóscadh ábhair, mar aon le huainíocht seachvótála chun cosaintí frith-bot a nascleanúint go héifeachtach.
Ansin, rachaimid tríd an bpróiseas scríobtha céim ar chéim, ag tosú le hiarratais HTTP a sheoladh agus eilimintí leathanaigh ar leith a bhaint amach, agus críochnú le coigilt na sonraí san fhormáid riachtanach.
Beidh ort na leabharlanna riachtanacha a shuiteáil:
pip install beautifulsoup4
pip install requests
Bain úsáid as an leabharlann iarratais chun iarratais HTTP GET a sheoladh chuig leathanaigh liostála Craigslist.
import requests
# Liosta na n -urls craigslist le scrape
urls = [
"link",
"link"
]
for url in urls:
# Seol iarratas ar an URL
response = requests.get(url)
# Seiceáil an raibh an t -iarratas rathúil (Cód Stádas 200)
if response.status_code == 200:
# Sliocht Ábhar HTML as an bhfreagra
html_content = response.text
else:
# Má theip ar an iarraidh, priontáil teachtaireacht earráide leis an gcód stádais
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Bain úsáid as BeautifulSoup le haghaidh parsáil HTML agus nascleanúint tríd an ábhar aisghafa.
from bs4 import BeautifulSoup
# Athraigh trí gach URL sa liosta
for url in urls:
# Seol iarratas ar an URL
response = requests.get(url)
# Seiceáil an raibh an t -iarratas rathúil (Cód Stádas 200)
if response.status_code == 200:
# Sliocht Ábhar HTML as an bhfreagra
html_content = response.text
# Parse an t -ábhar HTML ag baint úsáide as BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
else:
# Má theip ar an iarraidh, priontáil teachtaireacht earráide leis an gcód stádais
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Sliocht sonraí ar nós teidil ítimí agus praghsanna ó liostaí Craigslist ag baint úsáide as modhanna BeautifulSoup.
from bs4 import BeautifulSoup
# Athraigh trí gach URL sa liosta
for url in urls:
# Seol iarratas ar an URL
response = requests.get(url)
# Seiceáil an raibh an t -iarratas rathúil (Cód Stádas 200)
if response.status_code == 200:
# Sliocht Ábhar HTML as an bhfreagra
html_content = response.text
# Parse an t -ábhar HTML ag baint úsáide as BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
# Pointí sonracha sonraí a bhaint amach
# Faigh teideal an liostála
title = soup.find('span', id='titletextonly').text.strip()
# Faigh praghas an liostála
price = soup.find('span', class_='price').text.strip()
# Faigh an cur síos ar an liosta (féadfaidh il -mhíreanna a bheith ann)
description = soup.find('section', id='postingbody').find_all(text=True, recursive=False)
# Priontáil sonraí eastósctha (chun críocha taispeántais)
print(f"Title: {title}")
print(f"Price: {price}")
print(f"Description: {description}")
else:
# Má theipeann ar an iarraidh, priontáil teachtaireacht earráide leis an gcód stádais
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Ceart:
Praghas a fháil amach:
Saghas:
Nuair a bhaintear na sonraí, sábháil é chuig comhad CSV le haghaidh anailíse breise nó comhtháthú le huirlisí eile.
import csv
# Sainmhínigh an cosán comhaid CSV agus ainmneacha allamuigh
csv_file = 'craigslist_data.csv'
fieldnames = ['Title', 'Price', 'Description']
# Sonraí a scríobh chuig comhad CSV
try:
# Oscail an comhad CSV i mód scríbhneoireachta le hionchódú UTF-8
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
# Cruthaigh réad DictWriter CSV leis na hainmneacha allamuigh sonraithe
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Scríobh an tsraith ceanntásca sa chomhad CSV
writer.writeheader()
# Athraigh trí gach mír sa liosta scraped_data
for item in scraped_data:
# Scríobh gach mír mar a chéile sa chomhad CSV
writer.writerow(item)
# Priontáil teachtaireacht ratha tar éis sonraí a scríobh chuig an gcomhad CSV
print(f"Data saved to {csv_file}")
except IOError:
# Priontáil teachtaireacht earráide má tharlaíonn ioerror agus tú ag scríobh chuig an gcomhad CSV
print(f"Error occurred while writing data to {csv_file}")
Féadfaidh Craigslist bearta a chur i bhfeidhm chun scríobadh a chosc, mar dhúshláin blocáil IP nó Captcha. Chun na saincheisteanna seo a mhaolú, smaoinigh ar úsáid a bhaint as seachvótálaithe agus gníomhairí úsáideoirí rothlacha.
Ag baint úsáide as seachvótálaithe:
Léiríonn an sampla seo úsáid seachvótálaí le húdarú seoladh IP.
proxies = {
'http': 'http://your_proxy_ip:your_proxy_port',
'https': 'https://your_proxy_ip:your_proxy_port'
}
response = requests.get(url, proxies=proxies)
Rothlú gníomhaire úsáideora:
import random
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
# Cuir níos mó gníomhairí úsáideoirí leis de réir mar is gá
]
headers = {
'User-Agent': random.choice(user_agents)
}
response = requests.get(url, headers=headers)
Taispeánann an script Python iomlán seo conas comhpháirteanna difriúla a chomhtháthú chun scraper éifeachtach Craigslist a thógáil a shroicheann, a pharsálann, agus a aisghabhann sonraí ó il -URLanna.
import requests
import urllib3
from bs4 import BeautifulSoup
import csv
import random
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# Liosta na n -urls craigslist le scrape
urls = [
"link",
"link"
]
# Gníomhairí úsáideoirí agus seachvótálaithe
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
]
proxies = [
{'http': 'http://your_proxy_ip1:your_proxy_port1', 'https': 'https://your_proxy_ip1:your_proxy_port1'},
{'http': 'http://your_proxy_ip2:your_proxy_port2', 'https': 'https://your_proxy_ip2:your_proxy_port2'},
]
# Liosta chun sonraí scríobtha a stóráil
scraped_data = []
# Lúb trí gach URL sa liosta
for url in urls:
# Rothlaigh Gníomhaire Úsáideora le haghaidh gach iarraidh chun braite a sheachaint
headers = {
'User-Agent': random.choice(user_agents)
}
# Úsáid seachvótálaí difriúil le haghaidh gach iarraidh chun blocáil IP a sheachaint
proxy = random.choice(proxies)
try:
# Seol Get Iarratas chuig URL Craigslist le ceanntásca agus seachvótálaí
response = requests.get(url, headers=headers, proxies=proxy, timeout=30, verify=False)
# Seiceáil an raibh an t -iarratas rathúil (Cód Stádas 200)
if response.status_code == 200:
# Ábhar HTML a pharsáil ar an bhfreagra
html_content = response.text
soup = BeautifulSoup(html_content, 'html.parser')
# Sonraí a bhaint as an HTML parsáilte
title = soup.find('span', id='titletextonly').text.strip()
price = soup.find('span', class_='price').text.strip()
description = soup.find('section', id='postingbody').get_text(strip=True, separator='\n') # Cur síos a bhaint
# Cuir sonraí scríobtha mar fhoclóir ar an liosta
scraped_data.append({'Title': title, 'Price': price, 'Description': description})
print(f"Data scraped for {url}")
else:
# Teachtaireacht Earráid Priontáil Má theipeann ar an Iarratas
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
except Exception as e:
# Priontáil Teachtaireacht Eisceachta Má tharlaíonn earráid le linn scríobadh
print(f"Exception occurred while scraping {url}: {str(e)}")
# Socrú comhad CSV chun sonraí scríobtha a stóráil
csv_file = 'craigslist_data.csv'
fieldnames = ['Title', 'Price', 'Description']
# Sonraí scríobtha a scríobh chuig comhad CSV
try:
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Scríobh sraith header sa chomhad CSV
writer.writeheader()
# Iterate trí liosta scraped_data agus scríobh gach mír chuig an gcomhad CSV
for item in scraped_data:
writer.writerow(item)
# Teachtaireacht Rath Priontáil Má Shábháiltear Sonraí go rathúil
print(f"Data saved to {csv_file}")
except IOError:
# Teachtaireacht Earráid Priontáil Má tá ioerror agus tú ag scríobh chuig an gcomhad CSV
print(f"Error occurred while writing data to {csv_file}")
Tá Craigslist tábhachtach toisc go soláthraíonn sé áit inar féidir linn fógraí rangaithe a aimsiú a thugann eolas úsáideach dúinn chun margaí a scrúdú, ag aimsiú toradh i measc daoine eile. Is furasta python a scríobadh go héasca ag python ag baint úsáide as leabharlanna ar nós BeautifulSoup agus iarraidh. Tá na príomh -oirbhearta a pléadh sa rang teagaisc seo ag láimhseáil ábhar dinimiciúil agus seachvótálaithe rothlacha. Trí Python a ghiaráil go freagrach, is féidir leat léargais inchaingne a bhaint as liostaí Craigslist, ag tacú le cinnteoireacht eolasach thar réimsí éagsúla.
Tuairimí: 0