从一个网站的多个页面中提取电子邮件并列出i

2024-04-24 15:57:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python从一个展览网站上提取参展商的电子邮件。该页面包含参展商的超文本。单击“参展商名称”后,您将看到包含其电子邮件的参展商简介

您可以在此处找到网站:

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

我如何使用python来完成这个任务? 先谢谢你


Tags: https名称combin网站电子邮件libwww
1条回答
网友
1楼 · 发布于 2024-04-24 15:57:39

您可以抓取所有指向参展商的链接,然后反复浏览这些链接,并为每个参展商发送电子邮件:

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))

相关问题 更多 >