Не удается извлечь адрес электронной почты с веб-страницы - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь очистить адрес электронной почты с веб-страницы. Когда на любой подобной странице есть адрес электронной почты, там присутствует знак электронной почты. Однако я не могу получить его с помощью приведенного ниже сценария. Вместо этого я получаю эту ссылку https://www.yell.com/customerneeds/sendenquiry/sendtoone/100040736756000120.

адрес веб-страницы

Я пробовал с:

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

base = "https://www.yell.com"
link = "https://www.yell.com/biz/east-london-only-london-901717573/"

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

r = requests.get(link,headers=headers)
soup = BeautifulSoup(r.text,"lxml")
email = urljoin(base,soup.select_one("a[data-tracking='ENQUIRY:SEND']")["href"])
print(email)

Как могу ли я получить адрес электронной почты с этой страницы?

1 Ответ

1 голос
/ 17 июля 2020

На этой странице нет адресов электронной почты. Это типичный способ, который используется для обеспечения возможности связи без указания адреса электронной почты для публикации c.

Когда вы нажимаете кнопку «Отправить запрос», ваш браузер отправляет HTTP-запрос POST на какой-то адрес * на веб-сервер, который затем обрабатывает ваш запрос. Веб-сервер может отправить электронное письмо на какой-то адрес, но может не . Например, веб-сервер может просто добавить запись в базу данных, а затем какой-то пользователь может увидеть ваш запрос через веб-интерфейс.

* Это вы можете проверить сами, используя инструменты разработчика браузера и проверив вкладку «Сеть», нажав кнопку «Отправить запрос». Я не хотел отправлять им tra sh, чтобы проверить, куда отправляются данные.

...