#python #web-scraping #scrapy #python-requests #web-crawler
#python #очистка веб-страниц #scrapy #python-запросы #веб-сканер
Вопрос:
Я хотел бы извлечь электронные письма экспонентов с веб-сайта выставки, используя python. страница содержит гипертекст участников. при нажатии на имя экспонента вы найдете профиль экспонента, который включает его электронную почту.
Вы можете найти веб-сайт здесь:
Как я могу это сделать, используя python, пожалуйста? Заранее благодарю вас
Комментарии:
1. Пожалуйста, покажите нам свой код, чтобы мы могли помочь.
2. Существует множество проектов, которые помогают вам сканировать страницу. Для этого вы можете использовать selenium.
3. Вопросы, которые не включают код в этом контексте, следует закрыть как слишком широкие. Пожалуйста, добавьте ваши текущие попытки кодирования и исследования.
Ответ №1:
Вы можете получить все ссылки на участников, затем выполнить итерацию по ним и получить электронное письмо для каждого из них:
import requests
import bs4
url = 'https://www.medica-tradefair.com/cgi-bin/md_medica/lib/pub/tt.cgi/Exhibitor_index_A-Z.html?oid=80398amp;lang=2amp;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: %stEmail: %s' %(name, email))