Очистка веб-страниц от разных форматов

#python #web-scraping #automation #scrape #web-site-project

#python #очистка веб-страниц #автоматизация #очистка #веб-сайт-проект

Вопрос:

Я пытаюсь очистить имена, идентификаторы электронной почты (связанные с их именем), годы и роли / темы сотрудников на этой страницеhttps://www.aacps.org/Page/4014 и сохраните детали на листе Excel. Сталкиваюсь с трудностями при сборе данных ссылок, а также информации открытого текста.

Это то, что у меня есть до сих пор:

 url_fac='https://www.aacps.org/Page/4014'
print(url_fac)
req_fac = urllib.request.Request(url_fac, headers=hdr)
html_page_fac = urllib.request.urlopen(req_fac)
soup_fac = BeautifulSoup(html_page_fac, "lxml")
links_fac=soup_fac.find_all('a') 
  

Заранее большое спасибо!

Ответ №1:

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

 from bs4 import BeautifulSoup
import requests

headers = {
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}

url_fac = 'https://www.aacps.org/Page/4014'

req_fac = requests.get(url_fac, headers=headers)
soup_fac = BeautifulSoup(req_fac.content, 'html.parser')
staff_fac = soup_fac.find('div', attrs={'id': "sw-module-78060"})

for link in staff_fac.find_all('a', href=True):
   print("Url: "   link['href'])
   print("Name: "   link.parent.text)
   print("Team: "   link.parent.parent.parent.find("strong").text)
  

Вывод:

 Url: mailto:shartford@aacps.org
Name: Principal – Shelley Hartford  shartford@aacps.org
Team: Principal
  

и так далее