以下是我正在使用的网站:http://www.fantasypros.com/mlb/probable-pitchers.php
我想做的是每天运行代码,它返回当天投手的列表,所以只需要第一列。这是我目前掌握的情况。你知道吗
from bs4 import BeautifulSoup
import urllib.request
url = 'http://www.fantasypros.com/mlb/probable-pitchers.php'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'lxml')
table = soup.find('table',{'class': 'table table-condensed'})
table2 = table.find('tbody') #this find just the rows with pitchers (excludes dates)
daysOnPage = []
for row in table.findAll('th'):
daysOnPage.append(row.text)
daysOnPage.pop(0)
#print(daysOnPage)
pitchers = []
for row in table2.findAll('a', {'class': 'available mpb-available'}):
pitchers.append(row.text)
这将返回页面上每个投手的列表。如果表上的每个单元格都被填满了,我可以做一些事情,比如删除第n个玩家或者类似的事情,但是这看起来很不雅观,而且也不起作用,因为你永远不知道哪些单元格是空白的。我已经浏览了table2.prettify()代码,但找不到任何指示空白单元格将要出现的位置的信息。你知道吗
谢谢你的帮助。你知道吗
编辑:修修补补一下,我想了很多:
for row in table2.find('tr'):
for a in row.findAll('a', {'class': 'available mpb-available'}):
pitchers.append(a.text)
continue
这会打印出第一排投手,这也是我稍后要解决的问题。为什么continue
不让它遍历行?你知道吗
当我听到桌子声时,我想是熊猫。您可以让
pandas.read_html
为您进行解析,然后使用pandas.Series.dropna
只返回有效值。你知道吗我想您最不想做的就是解析表中的字符串以获得投手的名字。你知道吗
如果要将序列写入csv,可以通过以下方式直接执行:
这将为您提供一个如下所示的csv:
相关问题 更多 >
编程相关推荐