извлекать электронные письма с нескольких страниц на сайте и перечислять их - PullRequest
0 голосов
/ 20 марта 2019

Я хотел бы извлечь электронные письма экспонентов с сайта выставки, используя python. Страница содержит гипертекст участников. при нажатии на имя экспонента вы найдете профиль экспонента, включающий его электронную почту.

Вы можете найти сайт здесь:

https://www.medica -tradefair.com / CGI-BIN / md_medica / Библиотека / паб / tt.cgi / Exhibitor_index_A-Z.html? Подъязычная = 80398 & LANG = 2 & билет = g_u_e_s_t

Как я могу сделать это, используя python, пожалуйста? Заранее спасибо

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете получить все ссылки на участников, затем просмотреть их и получить по электронной почте для каждого из них:

import requests
import bs4


url = 'https://www.medica-tradefair.com/cgi-bin/md_medica/lib/pub/tt.cgi/Exhibitor_index_A-Z.html?oid=80398&lang=2&ticket=g_u_e_s_t'

response = requests.get(url)

soup = bs4.BeautifulSoup(response.text, 'html.parser')

links = soup.find_all('a', href=True)
exhibitor_links = ['https://www.medica-tradefair.com'+link['href'] for link in links if 'vis/v1/en/exhibitors' in link['href'] ]
exhibitor_links = list(set(exhibitor_links))

for link in exhibitor_links:
    response = requests.get(link)
    soup = bs4.BeautifulSoup(response.text, 'html.parser')

    name = soup.find('h1',{'itemprop':'name'}).text
    try:
        email = soup.find('a', {'itemprop':'email'}).text
    except:
        email = 'N/A'

    print('Name: %s\tEmail: %s' %(name, email))
...