从 html table in <p> 而不是 <table> 中提取数据
extracting data from an html table in <p> rather than <table>
我一直在使用 pd.read_html 尝试从 url 中提取数据,但数据列在
标签中而不是 中。我可能在这里错过了一个简单的课程,但我不确定使用什么函数来获得好的结果(table)而不是我得到的长字符串。任何建议,将不胜感激!
我使用了这两个并得到了相同的结果:
import requests
import pandas as pd
url ='http://www.linfo.org/acronym_list.html'
dfs = pd.read_html(url, header =0)
df = pd.concat(dfs)
df
import pandas as pd
url ='http://www.linfo.org/acronym_list.html'
data = pd.read_html(url, header=0)
data[0]
输出[1]:
ABCDEFGHIJKLMNOPQRSTUVWXYZ A AMD Advanced Micro Devices API 应用程序编程接口 ARP 地址解析协议 ARPANET Advanced Research Projects Agency Network AS 自治系统 ASCII 美国信息交换标准代码 AT&T 美国电话电报公司 ATA 高级技术附件 ATM异步传输模式 B B 字节 BELUG Bellevue Linux Users Group BGP 边界网关协议...
我正在使用 BeautifulSoup 来解析请求 html 每个标签 p 和 br ,最终结果是一个数据框...稍后您可以将其导出到 excel文件...希望能帮到你
from bs4 import BeautifulSoup
import requests
import pandas as pd
result = requests.get('http://www.linfo.org/acronym_list.html')
c = result.content
soup = BeautifulSoup(c, "html.parser")
samples = soup.find_all("p")
rows_list = []
for row in samples:
tagstrong = row.find_all("strong")
for x in tagstrong:
#print(x.get_text())
tagbr = row.find_all("br")
for y in tagbr:
new_row = {'letter':x.get_text(), 'content':y.next}
rows_list.append(new_row)
df1 = pd.DataFrame(rows_list)
print(df1.head(10))
这是结果:
我一直在使用 pd.read_html 尝试从 url 中提取数据,但数据列在
标签中而不是 中。我可能在这里错过了一个简单的课程,但我不确定使用什么函数来获得好的结果(table)而不是我得到的长字符串。任何建议,将不胜感激! 我使用了这两个并得到了相同的结果:
import requests
import pandas as pd
url ='http://www.linfo.org/acronym_list.html'
dfs = pd.read_html(url, header =0)
df = pd.concat(dfs)
df
import pandas as pd
url ='http://www.linfo.org/acronym_list.html'
data = pd.read_html(url, header=0)
data[0]
输出[1]:
ABCDEFGHIJKLMNOPQRSTUVWXYZ A AMD Advanced Micro Devices API 应用程序编程接口 ARP 地址解析协议 ARPANET Advanced Research Projects Agency Network AS 自治系统 ASCII 美国信息交换标准代码 AT&T 美国电话电报公司 ATA 高级技术附件 ATM异步传输模式 B B 字节 BELUG Bellevue Linux Users Group BGP 边界网关协议...
我正在使用 BeautifulSoup 来解析请求 html 每个标签 p 和 br ,最终结果是一个数据框...稍后您可以将其导出到 excel文件...希望能帮到你
from bs4 import BeautifulSoup
import requests
import pandas as pd
result = requests.get('http://www.linfo.org/acronym_list.html')
c = result.content
soup = BeautifulSoup(c, "html.parser")
samples = soup.find_all("p")
rows_list = []
for row in samples:
tagstrong = row.find_all("strong")
for x in tagstrong:
#print(x.get_text())
tagbr = row.find_all("br")
for y in tagbr:
new_row = {'letter':x.get_text(), 'content':y.next}
rows_list.append(new_row)
df1 = pd.DataFrame(rows_list)
print(df1.head(10))
这是结果: