Python3 не получает полный текст на веб-странице

#python-3.x #web-scraping

#python-3.x #очистка веб-страницы

Вопрос:

У меня есть веб-страница, с которой я хочу повторно просмотреть электронное письмо в середине:

url = 'https://www.westminster.ac.uk/about-us/our-people/directory/ramachandran-natasha-1'

Я пробовал использовать BeautifoulSoup с запросами и urllib, но ни один из них не работает, потому что электронное письмо не включено, когда я print(page_source) .

 page = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
page_source = page.text
  

и

 page = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
infile = urllib.request.urlopen(page).read()
page_source = infile.decode('ISO-8859-1')

  

Я пробовал с заголовками и без них. Кроме того, если я сделаю это с помощью selenium с driver.get(url) , тогда это сработает. Но я не могу использовать selenium, потому что это слишком медленно.

Я видел несколько других подобных потоков, и они предложили решения выше, но они не работают для меня.

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

Комментарии:

1. Электронное письмо, которое вы хотите получить, является динамическим. Попробуйте использовать selenium.

2. Я заявляю в вопросе, что я не хочу использовать selenium. Спасибо selenium.

Ответ №1:

 from bs4 import BeautifulSoup
import requests
url="https://www.westminster.ac.uk/about-us/our-people/directory/ramachandran-natasha-1"
page_data=requests.get(url)
soup=BeautifulSoup(page_data.content,"html.parser")

email_id=[]

for job_tag in soup.find_all("div",class_="masthead-profile__result-set"):
    email=job_tag.find("div",class_="masthead-profile__result-value--email email")
    
    email_id.append(email)
  

вы видите, что это сработало бы, но электронная почта защищена веб-сайтом, если вы просто напечатаете job_tag в приведенном выше вопросе, вы можете это ясно видеть

Комментарии:

1. Итак, есть ли другой способ получить его?

2. я не уверен… но я думаю, что нет, некоторые веб-сайты защищают некоторые данные, чтобы люди не очищали их