- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从玩家的各个页面中抓取表格,但有时如果有多个同名玩家,搜索将转到玩家列表。我想要那个在 NBA 打球的球员。例如,对于 Sergio Rodriguez,会显示一个列表 ( https://basketball.realgm.com/search?q=Sergio+Rodriguez ),因此它不会转到单个页面,而是显示“没有 Sergio Rodriguez 的国际表”。我想进入在 NBA 效力的塞尔吉奥·罗德里格斯 (Sergio Rodriguez) 的个人页面(排名第二)并抓取表格,但我不知道该怎么做。我如何使用 html 进入该特定玩家的页面并继续抓取?
HTML:
<tbody>
<tr>
<td class="nowrap tablesaw-cell-persist" rel="Rodriguez Febles, Sergio"><a href="/player/Sergio-Rodriguez-Febles/Summary/50443">Sergio Rodriguez Febles</a></td>
<td class="nowrap" rel="5">SF</td>
<td class="nowrap" rel="79">6-7</td>
<td class="nowrap" rel="202">202</td>
<td class="nowrap" rel="19931018"><a href="/info/birthdays/19931018/1">Oct 18, 1993</a></td>
<td class="nowrap" rel="2015"><a href="/nba/draft/past_drafts/2015" target="_blank">2015</a></td>
<td class="nowrap" rel="N/A">-</td>
<td rel="-">-</td>
</tr>
<tr>
<td class="nowrap tablesaw-cell-persist" rel="Rodriguez, Sergio"><a href="/player/Sergio-Rodriguez/Summary/85">Sergio Rodriguez</a></td>
<td class="nowrap" rel="1">PG</td>
<td class="nowrap" rel="75">6-3</td>
<td class="nowrap" rel="176">176</td>
<td class="nowrap" rel="19860612"><a href="/info/birthdays/19860612/1">Jun 12, 1986</a></td>
<td class="nowrap" rel="2006"><a href="/nba/draft/past_drafts/2006" target="_blank">2006</a></td>
<td class="nowrap" rel="N/A">-</td>
<td rel="NYK, PHL, POR, SAC"><a href="/nba/teams/New-York-Knicks/20/Rosters/Regular/2010">NYK</a>, <a href="/nba/teams/Philadelphia-Sixers/22/Rosters/Regular/2017">PHL</a>, <a href="/nba/teams/Portland-Trail-Blazers/24/Rosters/Regular/2009">POR</a>, <a href="/nba/teams/Sacramento-Kings/25/Rosters/Regular/2010">SAC</a></td>
</tr>
<tr>
<td class="nowrap tablesaw-cell-persist" rel="Rodriguez, Sergio"><a href="/player/Sergio-Rodriguez/Summary/39601">Sergio Rodriguez</a></td>
<td class="nowrap" rel="3">SG</td>
<td class="nowrap" rel="76">6-4</td>
<td class="nowrap" rel="-">-</td>
<td class="nowrap" rel="19771012"><a href="/info/birthdays/19771012/1">Oct 12, 1977</a></td>
<td class="nowrap" rel="1999"><a href="/nba/draft/past_drafts/1999" target="_blank">1999</a></td>
<td class="nowrap" rel="N/A">-</td>
<td rel="-">-</td>
</tr>
</tbody>
import requests
from bs4 import BeautifulSoup
import pandas as pd
playernames=['Carlos Delfino', 'Sergio Rodriguez']
result = pd.DataFrame()
for name in playernames:
fname=name.split(" ")[0]
lname=name.split(" ")[1]
url="https://basketball.realgm.com/search?q={}+{}".format(fname,lname)
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# check the response url
if (response.url == "https://basketball.realgm.com/search..."):
# parse the search results, finding players who played in NBA
... get urls from the table ...
soup.table... # etc.
foreach url in table:
response = requests.get(player_url)
soup = BeautifulSoup(response.content, 'html.parser')
# call the parse function for a player page
...
parse_player(soup)
else: # we have a player page
# call the parse function for a player page, same as above
...
parse_player(soup)
try:
table1 = soup.find('h2',text='International Regular Season Stats - Per Game').findNext('table')
table2 = soup.find('h2',text='International Regular Season Stats - Advanced Stats').findNext('table')
df1 = pd.read_html(str(table1))[0]
df2 = pd.read_html(str(table2))[0]
commonCols = list(set(df1.columns) & set(df2.columns))
df = df1.merge(df2, how='left', on=commonCols)
df['Player'] = name
except:
print ('No international table for %s.' %name)
df = pd.DataFrame([name], columns=['Player'])
最佳答案
使用 if 条件检查元素的文本是否与 Sergio Rodriguez
匹配,然后转到该 block 并获取最新的 url,然后获取汤等。
import requests
from bs4 import BeautifulSoup
import pandas as pd
playernames=['Carlos Delfino', 'Sergio Rodriguez','Nikola Jokic','Brandon Jennings','Thon Maker']
result = pd.DataFrame()
for name in playernames:
fname=name.split(" ")[0]
lname=name.split(" ")[1]
url="https://basketball.realgm.com/search?q={}+{}".format(fname,lname)
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
#Add check here if matches with `Sergio Rodriguez` then go to if clause
if soup.find('a',text=name).text==name:
url="https://basketball.realgm.com"+soup.find('a',text=name)['href']
print(url)
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
try:
table1 = soup.find('h2',text='International Regular Season Stats - Per Game').findNext('table')
table2 = soup.find('h2',text='International Regular Season Stats - Advanced Stats').findNext('table')
df1 = pd.read_html(str(table1))[0]
df2 = pd.read_html(str(table2))[0]
commonCols = list(set(df1.columns) & set(df2.columns))
df = df1.merge(df2, how='left', on=commonCols)
df['Player'] = name
print(df)
except:
print ('No international table for %s.' %name)
df = pd.DataFrame([name], columns=['Player'])
控制台你可以看到df正在打印。
https://basketball.realgm.com/player/Carlos-Delfino/Summary/446
Season Team ... PER Player
0 2002-03 Fortituto Kontatto Bologna ... 15.38 Carlos Delfino
1 2003-04 * All Teams ... 16.08 Carlos Delfino
2 2003-04 * Fortituto Kontatto Bologna ... 15.15 Carlos Delfino
3 2003-04 * Fortituto Kontatto Bologna ... 16.58 Carlos Delfino
4 2008-09 Khimki ... 19.48 Carlos Delfino
5 2016-17 Boca Juniors ... 14.82 Carlos Delfino
6 2017-18 * All Teams ... -0.76 Carlos Delfino
7 2017-18 * KIROLBET Baskonia Vitoria-Gasteiz ... 0.21 Carlos Delfino
8 2017-18 * KIROLBET Baskonia Vitoria-Gasteiz ... -6.67 Carlos Delfino
9 2018-19 * All Teams ... 15.37 Carlos Delfino
10 2018-19 * Fiat Torino ... 13.67 Carlos Delfino
11 2018-19 * Fortituto Kontatto Bologna ... 22.76 Carlos Delfino
12 2018-19 * Fiat Torino ... 12.78 Carlos Delfino
[13 rows x 41 columns]
https://basketball.realgm.com/player/Sergio-Rodriguez/Summary/85
Season Team ... PER Player
0 2003-04 Movistar Estudiantes ... 0.00 Sergio Rodriguez
1 2004-05 * All Teams ... 13.81 Sergio Rodriguez
2 2004-05 * Movistar Estudiantes ... 14.55 Sergio Rodriguez
3 2004-05 * Movistar Estudiantes ... 11.17 Sergio Rodriguez
4 2005-06 * All Teams ... 12.50 Sergio Rodriguez
5 2005-06 * Movistar Estudiantes ... 13.80 Sergio Rodriguez
6 2005-06 * Movistar Estudiantes ... 6.09 Sergio Rodriguez
7 2010-11 * All Teams ... 13.45 Sergio Rodriguez
8 2010-11 * Real Madrid ... 15.26 Sergio Rodriguez
9 2010-11 * Real Madrid ... 12.83 Sergio Rodriguez
10 2011-12 * All Teams ... 14.07 Sergio Rodriguez
11 2011-12 * Real Madrid ... 14.84 Sergio Rodriguez
12 2011-12 * Real Madrid ... 0.00 Sergio Rodriguez
13 2011-12 * Real Madrid ... 15.55 Sergio Rodriguez
14 2012-13 * All Teams ... 17.57 Sergio Rodriguez
15 2012-13 * Real Madrid ... 19.51 Sergio Rodriguez
16 2012-13 * Real Madrid ... 0.00 Sergio Rodriguez
17 2012-13 * Real Madrid ... 30.02 Sergio Rodriguez
18 2013-14 * All Teams ... 22.89 Sergio Rodriguez
19 2013-14 * Real Madrid ... 22.05 Sergio Rodriguez
20 2013-14 * Real Madrid ... 27.16 Sergio Rodriguez
21 2013-14 * Real Madrid ... 18.64 Sergio Rodriguez
22 2014-15 * All Teams ... 19.18 Sergio Rodriguez
23 2014-15 * Real Madrid ... 18.10 Sergio Rodriguez
24 2014-15 * Real Madrid ... 21.48 Sergio Rodriguez
25 2014-15 * Real Madrid ... 20.10 Sergio Rodriguez
26 2015-16 * All Teams ... 17.59 Sergio Rodriguez
27 2015-16 * Real Madrid ... 17.87 Sergio Rodriguez
28 2015-16 * Real Madrid ... 20.14 Sergio Rodriguez
29 2015-16 * Real Madrid ... 9.32 Sergio Rodriguez
30 2015-16 * Real Madrid ... 16.95 Sergio Rodriguez
31 2017-18 * All Teams ... 19.19 Sergio Rodriguez
32 2017-18 * CSKA Moscow ... 19.36 Sergio Rodriguez
33 2017-18 * CSKA Moscow ... 17.89 Sergio Rodriguez
34 2018-19 * All Teams ... 17.83 Sergio Rodriguez
35 2018-19 * CSKA Moscow ... 14.92 Sergio Rodriguez
36 2018-19 * CSKA Moscow ... 21.10 Sergio Rodriguez
37 2018-19 * CSKA Moscow ... -11.12 Sergio Rodriguez
38 2019-20 * All Teams ... 18.23 Sergio Rodriguez
39 2019-20 * EA7 Emporio Armani Milano ... 18.26 Sergio Rodriguez
40 2019-20 * EA7 Emporio Armani Milano ... 18.06 Sergio Rodriguez
[41 rows x 41 columns]
https://basketball.realgm.com/player/Nikola-Jokic/Summary/49571
Season Team League ... DRtg PER Player
0 2012-13 * All Teams All Leagues ... 98.5 14.15 Nikola Jokic
1 2012-13 * KK Mega Leks Junior Team Belgrade ... 95.2 21.13 Nikola Jokic
2 2012-13 * KK Mega Bemax KLS ... 104.9 3.48 Nikola Jokic
3 2013-14 * All Teams All Leagues ... 108.5 19.42 Nikola Jokic
4 2013-14 * KK Mega Bemax Liga ABA ... 108.4 21.18 Nikola Jokic
5 2013-14 * KK Mega Bemax KLS ... 109.0 21.79 Nikola Jokic
6 2014-15 * All Teams All Leagues ... 100.6 24.61 Nikola Jokic
7 2014-15 * KK Mega Bemax Liga ABA ... 100.5 24.02 Nikola Jokic
8 2014-15 * KK Mega Bemax KLS ... 100.8 31.50 Nikola Jokic
[9 rows x 41 columns]
https://basketball.realgm.com/player/Brandon-Jennings/Summary/1609
Season Team ... PER Player
0 2008-09 * All Teams ... 13.05 Brandon Jennings
1 2008-09 * Virtus Roma ... 12.94 Brandon Jennings
2 2008-09 * Virtus Roma ... 12.43 Brandon Jennings
3 2017-18 Shanxi Zhongyu ... 21.51 Brandon Jennings
4 2018-19 * All Teams ... 12.52 Brandon Jennings
5 2018-19 * Zenit Saint Petersburg ... 14.60 Brandon Jennings
6 2018-19 * Zenit Saint Petersburg ... 10.16 Brandon Jennings
[7 rows x 41 columns]
https://basketball.realgm.com/player/Thon-Maker/Summary/42192
No international table for Thon Maker.
关于python - 使用 html 进入 url 并抓取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901366/
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!