Díríonn an t -alt seo ar conas sonraí Quora a bhaint agus cén fáth a bhféadfadh sé a bheith úsáideach, agus conas is féidir Python a úsáid chun an tasc seo a uathoibriú. Breathnóimid freisin ar na príomhuirlisí agus na leabharlanna a theastaíonn chun scrapáil ón suíomh seo.
Tá Quora ar cheann de na láithreáin ghréasáin is mó a bhfuil freagairt ar cheisteanna ann a úsáideann daoine ar fud an domhain. Tá sé thar a bheith feiceálach i SAM, sa Ríocht Aontaithe, i gCeanada, san Astráil agus i dtíortha eile a labhraíonn Béarla. Tá go leor buntáistí ann agus anailís á déanamh ar na sonraí Quora, mar shampla:
Is féidir an t -ardán a úsáid i dtaighde, i bhforbairt ábhar nó i dtógáil AI réitigh.
Tagraíonn scríobadh gréasáin don ghníomh maidir le faisnéis agus sonraí a bhaint as láithreán gréasáin nó leathanach gréasáin. Is bealach nua -aimseartha é chun a lán faisnéise a bhailiú agus é a athrú go struchtúr eagraithe mar chomhad CSV.
Cad é an t -ardán Scraping Scraping Quora a thabhairt dúinn:
Dá bhrí sin, tugann Scrapáil Sonraí Quora léargas ar rannpháirtíocht an úsáideora, ar thábhacht, agus ar an tóir a bhí ar cheisteanna difriúla chomh maith leis na freagraí a fhaigheann siad.
D'fhonn sonraí Quora a scrapáil úsáidtear leabharlanna Python. Anseo thíos tá na hacmhainní is ábhartha a chuirfidh ar do chumas an sprioc sin a bhaint amach:
Fágann na leabharlanna seo gur féidir idirghníomhú le leathanaigh ghréasáin agus faisnéis a bhailiú ó Quora gan stró.
Tugann an fo -alt seo aghaidh ar thógáil scraper, a bheidh ina aird chéimnithe. Ullmhaigh an spás oibre, suiteáil leabharlanna riachtanacha, cruthaigh nósanna imeachta chun iarratais a sheoladh, chun an cód HTML a pharsáil, agus chun oibriú leis an bhfaisnéis aisghafa.
Roimh ré chun ceann a scríobadh ní mór an timpeallacht oibre a ullmhú:
python -m venv quora_scraper
source quora_scraper/bin/activate # Do MacOS agus Linux
quora_scraper\Scripts\activate # Do Windows
Suiteáil na leabharlanna riachtanacha a bheidh de dhíth ort le haghaidh scríobtha gréasáin sa chéim seo:
pip install requests beautifulsoup4
Tá na comhéadain seo riachtanach chun iarratais HTTP a tharchur agus ina dhiaidh sin anailís a dhéanamh ar na sonraí HTML a fuarthas.
Chun API áirithe a ghlaoch agus an leathanach HTML a fháil ar ais, bainfimid úsáid as an Leabharlann Iarrataí. Tá sé iomasach agus faigheann sé an post go han -tapa.
url = "https://www.quora.com/How-do-you-open-your-own-company"
response = requests.get(url)
Chun Python a úsáid, chun freagraí Quora a scrapáil beidh gá againn le leabharlann eile darb ainm BeautifulSoup. Seo mar a shuiteáil tú é:
soup = BeautifulSoup(response.text, "lxml")
question = soup.find(class_='q-box qu-userSelect--text')
Chun na ceisteanna agus na freagraí a bhaint amach, ní gá duit ach an chlib HTML riachtanach a aimsiú a bhfuil na sonraí seo aige. Lig dúinn cás a ghlacadh:
text_of_answers = []
for answer_id in range(6):
answers = soup.find_all(
class_=f'q-box dom_annotate_question_answer_item_{answer_id} qu-borderAll qu-borderColor--raised qu-boxShadow--small qu-mb--small qu-bg--raised')
for answer in answers:
text = answer.find('p', class_='q-text qu-display--block qu-wordBreak--break-word qu-textAlign--start')
text_of_answers.append(text)
Is iondúil go mbíonn a lán freagraí ag Quora agus is minic a chaithfidh tú an leathanach a scrollú go leor chun gach rud a fheiceáil. Chuige seo beimid ag úsáid Selenium chun an láithreán gréasáin a uathoibriú.
Anseo thíos tá an dóigh a gcuireann tú Selenium ar bun agus úsáid a bhaint as seachvótálaithe chun do chéannacht a cheilt níos fearr:
from selenium.webdriver.chrome.options import Options
from seleniumwire import webdriver as wiredriver
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')
chrome_options.add_argument("--headless")
driver = wiredriver.Chrome(options=chrome_options)
Tar éis duit gach rud a chur suas i Selenium, ní gá duit ach iarratas HTTP a dhéanamh, agus ansin scrollaigh síos agus na píosaí sonraí seo a ghabháil:
url = "https://www.quora.com/How-do-you-open-your-own-company"
driver.execute_script('window.scrollBy(0, 1000)')
driver.get(url)
Nuair a dhéantar na sonraí a bhailiú, ba mhaith leat iad a choinneáil ar bhealach a fhágann go bhfuil sé éasca anailís a dhéanamh níos déanaí. Is é an bealach is fearr chun é seo a dhéanamh ná iad a choinneáil i bhformáid JSON, mar is é an ceann is mó a úsáidtear.
with open(f'quora_data.json', 'w', encoding='utf-8') as json_file:
json.dump(text_of_answers, json_file, ensure_ascii=False, indent=4)
Shábháil muid sonraí chuig JSON, ach i gcásanna áirithe d'fhéadfadh sé a bheith inmhianaithe é a dhéanamh i níos mó ná formáid amháin ag an am céanna. Mar sin tá feidhm agat anseo a dhéanann go díreach:
def export_data(data, csv_filename="quora_data.csv", json_filename="quora_data.json"):
save_to_csv(data, csv_filename)
save_to_json(data, json_filename)
export_data(text_of_answers)
Tá roinnt cosaintí ag Quora i gcoinne scríobadh sonraí uathoibrithe, mar sin mar thoradh ar iarracht a dhéanamh go leor iarratais a sheoladh chuig Quora, gearrfar do sheoladh IP as. Tá bealaí timpeall air seo áfach.
Is é seo mimicry bunúsach d'iompar an duine a chuireann moill éigin ar moill nuair a sheoltar iarratas.
import time
import random
def random_delay():
time.sleep(random.uniform(2, 5))
Cuir an fheidhm seo leis tar éis gach ceist chun an seans nach gcuirfear bac ort a mhéadú.
Is féidir le duine an seoladh IP a sheachaint go héasca trí fhreastalaithe seachfhreastalaí a úsáid. Feicfimid conas is féidir é a úsáid le Requests agus le Selenium.
url = "https://www.quora.com/How-do-you-open-your-own-company"
proxy = 'LOGIN:PASSWORD@ADDRESS:PORT'
proxies = {
"http": f"http://{proxy}",
"https": f"https://{proxy}",
}
response = requests.get(url, proxies=proxies)
proxy_address = ""
proxy_username = ""
proxy_password = ""
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')
chrome_options.add_argument("--headless")
driver = wiredriver.Chrome(options=chrome_options)
Mar sin, tar éis duit gach céim a chlúdach, tá sé in am iad a chur le chéile agus iad a chur isteach i script amháin.
import json
from selenium.webdriver.chrome.options import Options
from seleniumwire import webdriver as wiredriver
from bs4 import BeautifulSoup
proxy_address = ""
proxy_username = ""
proxy_password = ""
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')
chrome_options.add_argument("--headless")
driver = wiredriver.Chrome(options=chrome_options)
url = "https://www.quora.com/How-do-you-open-your-own-company"
driver.execute_script('window.scrollBy(0, 1000)')
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
question = soup.find(class_='q-box qu-userSelect--text')
# Freagra
text_of_answers = [{'question': question}]
for answer_id in range(6):
answers = soup.find_all(
class_=f'q-box dom_annotate_question_answer_item_{answer_id} qu-borderAll qu-borderColor--raised qu-boxShadow--small qu-mb--small qu-bg--raised')
for answer in answers:
text = answer.find('p', class_='q-text qu-display--block qu-wordBreak--break-word qu-textAlign--start').text
text_of_answers.append({
'answers': text,
})
with open(f'Quora_data.json', 'w', encoding='utf-8') as json_file:
json.dump(text_of_answers, json_file, ensure_ascii=False, indent=4)
print(f"Quora_data.json")
San Airteagal seo phléigh muid na modhanna a bhaineann le scríobadh Quora le Python. Cuireann scripteanna den sórt sin a tógadh ar chumas úsáideoirí roinnt srianta a shárú chomh maith le sárú agus coigilt sonraí i bhformáidí éagsúla ar nós JSON agus CSV.
Maidir le bailiú sonraí ar scála mór, is é an modh is éifeachtaí ná API Quora a úsáid. Ar an láimh eile, má roghnaíonn tú go straitéiseach úsáid a bhaint as BeautifulSoup nó Selenium go straitéiseach, ní mór feidhmíocht leanúnach a úsáid le freastalaithe seachfhreastalaí.
Tuairimí: 0