将 BS4 结果集转换为相对于 headers 的 NxN 数组(单独的 BS4 结果集)
Converting BS4 resultset to NxN array relative to headers (separate BS4 resultset)
TL;DR 我需要将 BS4 结果集列表(单列)转换为 NxN 数组,但是如何呢?我怎样才能得到同样是 BS4 结果集列表的 headers?下面的代码。 Thank-you!
因此,我正在尝试通过网络抓取体育数据,但在将结果集转换为 NxN 数组时遇到了问题。此外,我试图包括以相同方式抓取的 headers。到目前为止,这是我的代码:
import requests
from bs4 import BeautifulSoup
from __future__ import print_function
import numpy as np
url=input("Paste player link and specific year ")
r= requests.get(url)
html_content=r.text
soup=BeautifulSoup(html_content,"lxml")
body = soup.body
table=body.table
tbody=table.tbody
headers = table.find_all("th")
statistics = tbody.find_all("td")
def string_stats():
for stat in statistics:
print (stat.string)
def string_headers():
for head in headers:
print (head.string)
string_stats_list = string_stats()
string_stats_list
这会产生一个垂直列表,其中只有 td 标记元素作为字符串(或者这就是目标)。
所以,我的问题是:如何将这个单列列表变成 NxN array/matrix?另外,如何获得 headers 附件?
感谢阅读and/or帮助!
import pandas as pd
import requests
from bs4 import BeautifulSoup
url='http://www.footballdb.com/players/mike-evans-evansmi03/gamelogs'
r= requests.get(url)
html_content=r.content
soup=BeautifulSoup(html_content,"lxml")
body = soup.body
table=body.table
headers = table.find_all("th")
headers_list = [i.text for i in headers]
string_stats_list = []
row = []
for i in table.select('tr')[1:]:
for j in i.select('td'):
row.append(j.text)
string_stats_list.append(row)
row = []
df = pd.DataFrame(data=string_stats_list, columns=headers_list)
TL;DR 我需要将 BS4 结果集列表(单列)转换为 NxN 数组,但是如何呢?我怎样才能得到同样是 BS4 结果集列表的 headers?下面的代码。 Thank-you!
因此,我正在尝试通过网络抓取体育数据,但在将结果集转换为 NxN 数组时遇到了问题。此外,我试图包括以相同方式抓取的 headers。到目前为止,这是我的代码:
import requests
from bs4 import BeautifulSoup
from __future__ import print_function
import numpy as np
url=input("Paste player link and specific year ")
r= requests.get(url)
html_content=r.text
soup=BeautifulSoup(html_content,"lxml")
body = soup.body
table=body.table
tbody=table.tbody
headers = table.find_all("th")
statistics = tbody.find_all("td")
def string_stats():
for stat in statistics:
print (stat.string)
def string_headers():
for head in headers:
print (head.string)
string_stats_list = string_stats()
string_stats_list
这会产生一个垂直列表,其中只有 td 标记元素作为字符串(或者这就是目标)。
所以,我的问题是:如何将这个单列列表变成 NxN array/matrix?另外,如何获得 headers 附件?
感谢阅读and/or帮助!
import pandas as pd
import requests
from bs4 import BeautifulSoup
url='http://www.footballdb.com/players/mike-evans-evansmi03/gamelogs'
r= requests.get(url)
html_content=r.content
soup=BeautifulSoup(html_content,"lxml")
body = soup.body
table=body.table
headers = table.find_all("th")
headers_list = [i.text for i in headers]
string_stats_list = []
row = []
for i in table.select('tr')[1:]:
for j in i.select('td'):
row.append(j.text)
string_stats_list.append(row)
row = []
df = pd.DataFrame(data=string_stats_list, columns=headers_list)