Beautifulsoup 没有得到所有的 mailto href

Beautifulsoup doesn't get all mailto href

我正在尝试使用以下代码查找网站上的所有电子邮件:

import requests
from bs4 import BeautifulSoup

website = 'http://abborup.dk/sidsteny/lejligheder-til-salg/'
response = requests.get(website)
soup = BeautifulSoup(response.content, 'html.parser')
Email_list = []
for email in soup.select('a[href^=mailto]'):
    data = email['href']
    data = data.split('?')[0]
    data = data.replace('mailto:', '')
    Email_list.append(data)

问题是我没有收到该网站的所有 mailto 电子邮件,知道我做错了什么吗?

看起来并非所有项目实际上都是直接在原始页面源中邮寄的,而是由 JavaScript 生成的。

你最好只使用正则表达式,比如:

import requests
import re

r = requests.get('http://abborup.dk/sidsteny/lejligheder-til-salg/')
emails = [
    '{}@{}'.format(*el) 
    for el in re.findall('var username = "(.*?)"; var hostname = "(.*?)"', r.text)
]

我对这种方法的稳健性或优雅性不抱太大希望,但似乎适用于您的示例。