Python 如何在刮网时跳过表中的某些行

Python 如何在刮网时跳过表中的某些行,python,html,web-scraping,Python,Html,Web Scraping,我从这个链接中删除: 我的代码如下: import requests from bs4 import BeautifulSoup # assign url url = 'https://www.pro-football-reference.com/boxscores/201809060phi.htm' #parse and format url r = requests.get(url).text res = r.replace("<!--","").replace("-->",

我从这个链接中删除:

我的代码如下:

import requests
from bs4 import BeautifulSoup

# assign url
url = 'https://www.pro-football-reference.com/boxscores/201809060phi.htm'

#parse and format url
r = requests.get(url).text
res = r.replace("<!--","").replace("-->","")
soup = BeautifulSoup(res, 'lxml')


#get tables
tables = soup.findAll("div",{"class":"table_outer_container"})

#get offense_stats table
offense_table = tables[5]
rows = offense_table.tbody.findAll("tr")

#here i want to iterate through the player rows and pull their stats

player = test_row.find("th",{"data-stat":"player"}).text
carries = test_row.find("td",{"data-stat":"rush_att"}).text
rush_yds = test_row.find("td",{"data-stat":"rush_yds"}).text
rush_tds = test_row.find("td",{"data-stat":"rush_td"}).text
targets = test_row.find("td",{"data-stat":"targets"}).text
recs = test_row.find("td",{"data-stat":"rec"}).text
rec_yds= test_row.find("td",{"data-stat":"rec_yds"}).text
rec_tds= test_row.find("td",{"data-stat":"rec_td"}).text
导入请求
从bs4导入BeautifulSoup
#分配url
url='1〕https://www.pro-football-reference.com/boxscores/201809060phi.htm'
#解析和格式化url
r=请求.get(url).text
res=r.replace(“,”)
汤=BeautifulSoup(分辨率为'lxml')
#找桌子
tables=soup.findAll(“div”,“class”:“table\u outer\u container”})
#得到你的统计表
表=表[5]
行=表.tbody.findAll(“tr”)
#在这里,我想遍历玩家行并获取他们的统计数据
player=test_row.find(“th”,“data stat”:“player”}).text
carries=test_row.find(“td”,“data stat”:“rush_att”).text
rush_yds=test_row.find(“td”,“data stat”:“rush_yds”)。文本
rush_tds=test_row.find(“td”,{“data stat”:“rush_td”}).text
targets=test_row.find(“td”,“data stat”:“targets”}).text
recs=test_row.find(“td”,“data stat”:“rec”}).text
rec_yds=test_row.find(“td”,“data stat”:“rec_yds”).text
rec_tds=test_row.find(“td”,“data stat”:“rec_td”}).text
我需要的页面上的表格(进攻数据)包含了游戏中所有玩家的数据。我想遍历每一行,获取每个玩家的统计数据。问题是中间有两行是标题而不是玩家统计。我的“rows”变量提取了“表”变量“tbody”中的所有“tr”元素。这包括我不想要的两个标题行。在这种特殊情况下,它们将是第[8]行和第[9]行,但这可能因游戏而异

#this is how the data rows begin (the ones I want)
<tr data-row="0">

#and this is how the header rows begin (the ones I want to skip over)
<tr class="over_header thead" data-row="8">
#数据行就是这样开始的(我想要的)
#标题行就是这样开始的(我想跳过的那些)

有人知道我在迭代时忽略这些行的方法吗?

如果要跳过的行总是有
over\u header
类,而要保留的行永远不会有
findAll(“tr”)
类,则可以对没有
over\u header
类的行过滤
findAll(“tr”)
的结果:

rows=table.tbody.findAll(“tr”)
行=筛选器(lambda行:非行。查找(class='over'header'),行)

如果要跳过的行始终具有
over\u标题
类,而要保留的行永远不会这样做,则可以为没有
over\u标题
类的行筛选
findAll(“tr”)

rows=table.tbody.findAll(“tr”)
行=筛选器(lambda行:非行。查找(class='over'header'),行)

要仅选择
tr
而不选择类,请尝试替换

rows = offense_table.tbody.findAll("tr")


要仅选择
tr
而不选择类,请尝试替换

rows = offense_table.tbody.findAll("tr")


完美的非常感谢。完美的非常感谢。