Попытка просто получить текст от Href - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь повторить код. Если я печатаю имя трека, я получаю полное имя, то следующая строка ничего не делает? здесь действительно тяжело.

Помогите понять, что я должен делать

import requests

from bs4 import BeautifulSoup

base_url = "http://www.harness.org.au"

webpage_response = requests.get('http://www.harness.org.au/racing/tracks/', "html.parser")

soup = BeautifulSoup(webpage_response.content, "html.parser")

# only finding one track
# soup.table to find all links for days racing
#harness_table = soup.row
# scraps a href that is an incomplete URL that im trying to get to

tracks = soup.find(class_="col-lg-10 col-md-10 col-sm-10 col-xs-10 content")

lists = []

links = tracks.find_all('a')

#Gets each track
for a in links:
    lists.append(base_url+a["href"])

# track1 = []
#purpose - just to get track name before going over other data
for link in lists:
  webpage = requests.get(link)
  track = BeautifulSoup(webpage.content, "html.parser")
  trackname = track.find_all(class_="pageTitle")
  track1 = trackname.get_text()
  print(trackname)

1 Ответ

1 голос
/ 10 апреля 2020

когда вы используете find_all, он возвращает список элементов с любыми тегами и атрибутами, которые вы хотите найти. Таким образом, вам нужно получить текст из первого элемента. Или вы можете просто использовать find, и это вернет первый тег / атрибут.

, поэтому попробуйте изменить это:

#purpose - just to get track name before going over other data
for link in lists:
  webpage = requests.get(link)
  track = BeautifulSoup(webpage.content, "html.parser")
  trackname = track.find(class_="pageTitle")
  try:
      track1 = trackname.get_text()
  except:
      print ('No class="pageTitle" found.')
      track1 = ''
  print(track1)
No class="pageTitle" found.

Вывод:

Racing
Tracks
Albany
Albion Park
Albury
Ararat
Armidale
Bacchus Marsh
Ballarat
Bankstown
Bathurst
Benalla
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...