Разбор страницы Wiki и извлечение дат рождения - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь написать программу, которая просматривает имена в этом списке (https://en.wikipedia.org/wiki/All-time_LA_Galaxy_roster), переходит на их вики-страницу, находит дату их рождения и, в конце концов, записывает ее на CSV-файл. У меня проблемы с тем, что, когда я анализирую теги ul и li на вики-странице за все время, я получаю кучу дополнительных тегов, которые мне не нужны. Я не уверен, как избавиться от них. Что я пытаюсь сделать, если тег содержится в родительском элементе с определенным классом, я исключаю эти ссылки. Две страницы проигрывателей не отформатированы, как другие, поэтому я пытаюсь найти на их странице класс «bday», а когда он не находит его, я удаляю его из списка и добавляю в список на потом. Любая помощь будет принята с благодарностью. Вот мой код:

import requests
from bs4 import BeautifulSoup
import csv

links=[]
names=[]
dob_list=[]
website_url = requests.get("https://en.wikipedia.org/wiki/All-time_LA_Galaxy_roster").text
soup = BeautifulSoup(website_url,'lxml')
ul = soup.findAll("ul")
for li in ul:
  li = soup.findAll("li")
  for a in soup.findAll("a",href=True):
    if a.find(class_="thumbborder"):
      continue
    if a.find(class_="flagicon"):
      continue
    if a.find(class_="tocnumber"):
      continue
    if a.find(class_="mw-jump-link"):
      continue
    if a.find(class_="mw-redirect"):
      continue
    if a.find(class_="external text"):
      continue
    if a["href"] not in links:
      if a["href"][:5]=="/wiki":
        links.append(a["href"])
        names.append(a.text)

for item in (links[4:227]):
  print(item)

bad_names=[]
i=0
for link in links[4:227]:
  try:
    i+=1
    website_url = requests.get("https://en.wikipedia.org"+link).text
    soup = BeautifulSoup(website_url,'lxml')
    dob = soup.find("span", {"class": "bday"})
    dob_list.append(dob.text)
  except:
    print("CANT FIND DOB"+link)
    bad_names.append(link)
    print(links[i+3])
    del links[i+3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...