【发布时间】:2016-04-12 10:49:17
【问题描述】:
我正在编写一个扫描一组链接的脚本。在每个链接中,脚本会在表格中搜索一行。一旦找到,它会增加变量total_rank,这是在每个网页上找到的总排名。排名等于行号。
代码如下所示,输出为零:
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
在select() 调用之后调试 team_rows 是空的,我也尝试了不同的标签。例如我试过soup.select(".scroll-wrapper div") 我试过soup.select("#DataTables_Table_0_wrapper div") 都没有返回任何东西
【问题讨论】:
-
我不认为
string = str(a)是你想要的。它返回一个元素的文本表示。 -
@mic4ael 我错了 .get 将字符串作为输入吗?或者这就是你的意思?
标签: python html beautifulsoup python-requests extract