मेरा उपयोग मामला https://blueprint.uchicago.edu/organization जैसे उप-यूआरएल से सभी ईमेल प्राप्त करने का प्रयास कर रहा है। /acacouncil पैरेंट url के अंतर्गत: https://blueprint.uchicago.edu/organizations .

मुझे पता है कि ईमेल का सामान्य रूप xyz@xyz.com होगा, इसलिए एकल url के लिए ईमेल का पता लगाना काफी आसान है। लेकिन जब ऐसा करने की बात आती है तो सभी उप-वर्गों के लिए मैं थोड़ा सा खो जाता हूं।

0
Hojung Kim 3 फरवरी 2020, 22:39

1 उत्तर

सबसे बढ़िया उत्तर

यहां सुंदर सूप का उपयोग करने का कोई मतलब नहीं है क्योंकि आप सीधे एपीआई से डेटा प्राप्त कर सकते हैं। सबसे पहले आपको यह जानना होगा कि कितने संगठन हैं ताकि आप क्वेरी में इसका उपयोग कर सकें। फिर 'WebsiteKey' या संगठन id को पकड़कर, आप ईमेल खींचने के लिए एपीआई के माध्यम से पुनरावृति कर सकते हैं। आप डिक्शनरी, टेबल, प्रिंट आउट आदि में स्टोर कर सकते हैं। सुनिश्चित नहीं हैं कि आप वास्तव में आउटपुट के रूप में क्या चाहते हैं।

import requests
import pandas as pd

url = 'https://blueprint.uchicago.edu/api/discovery/search/organizations'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
payload = {
'orderBy[0]': 'UpperName asc',
'top': '',
'filter':'',
'query':'' ,
'skip': '0'}
data = requests.get(url, headers=headers, params=payload).json()

totalCount = data['@odata.count']
payload = {
'orderBy[0]': 'UpperName asc',
'top': '%s' %totalCount,
'filter':'',
'query':'' ,
'skip': '0'}


data = requests.get(url, headers=headers, params=payload).json()

organizations = {}
for each in data['value']:
    organizations[each['Name']] = {'id':each['Id'], 'WebsiteKey':each['WebsiteKey']}




emails = {}
for name, each in organizations.items():
    websiteKey = each['WebsiteKey']
    org_id = each['id']

    url = 'https://blueprint.uchicago.edu/api/discovery/organization/bykey/%s' %websiteKey
    data = requests.get(url, headers=headers).json()
    emails[name] = data['email']
    print('%-70s: %s' %(name, data['email']))

df = pd.DataFrame(list(zip(emails.keys(), emails.values())), columns=['Organization','Email'])
df.to_csv('file.csv', index=False)

आउटपुट:

{'A Cappella Council': 'uchicagoacappella@gmail.com', 'ACLU University of Chicago Law Chapter': 'dhbabrams@uchicago.edu', 'Active Minds at the University of Chicago': 'activemindsuchicago@gmail.com', 'African and Caribbean Student Association': 'cvleito@uchicago.edu', 'Aikido Kokikai': 'nahmadc@uchicago.edu', 'Alpha Kappa Psi': 'edwardchang@uchicago.edu', 'Alpha Phi Omega': 'uchi.apo.president@gmail.com', 'American Civil Liberties Union at University of Chicago': 'acluboard@lists.uchicago.edu', 'American Constitution Society': 'acs@law.uchicago.edu', 'American Medical Student Association': None, 'American Red Cross of University of Chicago': 'rkhouri@uchicago.edu', 'Amnesty International': 'eckere@uchicago.edu', 'Animal Legal Defense Fund - The University of Chicago Law School': 'ntschepik@uchicago.edu', 'Animal Welfare Society': 'petrucci@uchicago.edu', 'Anthropology Students Association': 'frevelolarotta@uchicago.edu', 'Apsara': 'uchicagoapsara@gmail.com', 'Arab Student Association': 'malakarafa@uchicago.edu', ...}
1
chitown88 4 फरवरी 2020, 16:59