首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将BS4结果集转换为相对于标头的NxN数组(单独的BS4结果集)

问将BS4结果集转换为相对于标头的NxN数组(单独的BS4结果集)
EN

Stack Overflow用户
提问于 2017-07-02 23:52:21
回答 1查看 405关注 0票数 0

TL;DR I需要将BS4结果集列表(单列)转换为NxN数组,但如何实现?以及如何获得附加的标头(也是BS4结果集列表)?下面的代码。谢谢你!

因此,我试图在web上抓取体育数据,但我很难将结果集转换为NxN数组。此外,我还试图包含以相同方式刮掉的标题。到目前为止,这是我的代码:

代码语言:javascript
复制
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数组/矩阵?此外,我怎样才能得到附加的标题?

感谢您的阅读和/或帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 19:14:11

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44876160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档