我正在編寫一個腳本來掃描一組鏈接。在每個鏈接中,腳本在表格中搜索一行。一旦找到,它會增加變量total_rank
,這是在每個網頁上找到的總和。排名等於行號。從腳本HTML提取的腳本
的代碼看起來是這樣的,並輸出零:
import requests
from bs4 import BeautifulSoup
import time
url_to_scrape = 'https://www.teamrankings.com/ncb/stats/'
r = requests.get(url_to_scrape)
soup = BeautifulSoup(r.text, "html.parser")
stat_links = []
for a in soup.select(".chooser-list ul"):
list_entry = a.findAll('li')
relative_link = list_entry[0].find('a')['href']
link = "https://www.teamrankings.com" + relative_link
stat_links.append(link)
total_rank = 0
for link in stat_links:
r = requests.get(link)
soup = BeautifulSoup(r.text, "html.parser")
team_rows = soup.select(".tr-table.datatable.scrollable.dataTable.no-footer table")
for row in team_rows:
if row.findAll('td')[1].text.strip() == 'Oklahoma':
rank = row.findAll('td')[0].text.strip()
total_rank = total_rank + rank
# time.sleep(1)
print total_rank
調試team_rows爲空後select()
通話的是,我也嘗試了不同的標籤。例如,我已經試過soup.select(".scroll-wrapper div")
我已經試過所有soup.select("#DataTables_Table_0_wrapper div")
正在返回什麼
我不認爲'string = str(a)'是你想要的。它返回一個元素的文本表示。 – mic4ael
@ mic4ael我錯了.get需要一個字符串作爲輸入?或者你在說什麼? –