#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
и так далее