Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从HTML中提取表信息(作为文本文件)_Python_Html_Beautifulsoup_Html Parsing - Fatal编程技术网

Python 从HTML中提取表信息(作为文本文件)

Python 从HTML中提取表信息(作为文本文件),python,html,beautifulsoup,html-parsing,Python,Html,Beautifulsoup,Html Parsing,我试图从一个html文件中的表中提取信息,我想将其作为文本使用,因为我只能通过VPN访问该文件,所以我下载了所有需要的html文件 我特别想从同一个表类的不同表中获取信息,但是当我试图获取信息时,没有返回任何信息。我已经附上了我试图用来获取此信息的代码,但没有成功 下面也是我一直试图从中获取信息的html文件,它非常大,但我希望这不会是一个问题 区域 类型 从…起 到 最相似的已知簇 相似性 21,469 62,957 NRP+聚酮 4% 74,163 124,963 聚酮 10% 区域

我试图从一个html文件中的表中提取信息,我想将其作为文本使用,因为我只能通过VPN访问该文件,所以我下载了所有需要的html文件

我特别想从同一个表类的不同表中获取信息,但是当我试图获取信息时,没有返回任何信息。我已经附上了我试图用来获取此信息的代码,但没有成功

下面也是我一直试图从中获取信息的html文件,它非常大,但我希望这不会是一个问题


区域
类型
从…起
到
最相似的已知簇
相似性
21,469
62,957
NRP+聚酮
4%
74,163
124,963
聚酮
10%
区域
类型
从…起
到
最相似的已知簇
相似性
3,800
23,263
聚酮
5%
55,320
97,088
糖类
17%
144,740
193,599
NRP
70%
347,862
362,833
NRP
3%
548,017
570,561
NRP+聚酮:迭代I型
12%
628,834
683,050
NRP
12%
,
1,043,511
1,104,786
聚酮
11%

从文件中获取HTML数据并导出单独的csv

import csv
from simplified_scrapy import SimplifiedDoc,req,utils
name = 'test.html'
html = utils.getFileContent(name) # Get data from file
doc = SimplifiedDoc(html)
rows = []
tables = doc.selects('table.region-table')
for table in tables:
    trs = table.tbody.trs
    for tr in trs:
        rows.append([td.text for td in tr.tds])
with open(name+'.csv','w',encoding='utf-8') as f: 
    csv_writer = csv.writer(f)
    csv_writer.writerows(rows)
如果希望每个表保留一个文件

doc = SimplifiedDoc(html)
i=0
tables = doc.selects('table.region-table')
for table in tables:
    i+=1
    rows = []
    trs = table.tbody.trs
    for tr in trs:
        rows.append([td.text for td in tr.tds])
    with open(name+str(i)+'.csv','w',encoding='utf-8') as f: 
        csv_writer = csv.writer(f)
        csv_writer.writerows(rows)
保留原始版本以供比较

import csv
from simplified_scrapy import SimplifiedDoc,req
html = '''''' # Your HTML
doc = SimplifiedDoc(html)
rows = []
tables = doc.selects('table.region-table')
for table in tables:
    trs = table.tbody.trs
    for tr in trs:
        rows.append([td.text for td in tr.tds])
 # If you have '>Region.*?</a>' in each row, you can get all the rows directly in the following way
 # trs = doc.getElementsByReg('>Region.*?</a>',tag='tr')
 # for tr in trs:
    # rows.append([td.text for td in tr.tds])
with open('test.csv','w',encoding='utf-8') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerows(rows)

你可能不需要使用beautifulsoup。尝试使用pandas的
read_html()
方法。该代码不打印任何内容/返回任何内容?@AMC-在我的情况下是这样的;类似于
tbl=“”[op's html]“print(pd.read_html(tbl))
的内容打印了目标表。@JackFleeting抱歉,如果我的评论不清楚,我要求澄清op写的内容:当我试图获取信息时,没有返回任何内容。@JackFleeting这是一个非常有用的工具,我一直在尝试使用BeautifulSoup模块,但总的来说遇到了一些麻烦。然而,当我使用此方法时,它会再次重复上一个表。嘿@dabingou,处理此问题的有趣方法。不幸的是,我继续收到一个错误
ModuleNotFoundError:没有名为'simplified_scrapy'的模块
,而且我找不到SimplifiedDoc()函数。不幸的是,该函数正在工作。@Biohacker抱歉,我忘了说。这是第三方库。需要像BeautifulSoup一样安装。pip安装简化的_scrapythanks太多了!这是完美的工作,我有一个单独的问题。例如,在
html=''此处的html文本'
中,是否可以输入一个.html文件作为文本读取?因为我想循环遍历一个包含各种html文件的目录,并为其导出一个单独的csveach@Biohacker当然等一下。我会为你更改密码。你绝对是最棒的!:)我做了一个小小的修改,将数据作为数据帧来处理,以便更轻松地进行操作,但您帮了很多忙!:)我想这样我就可以遍历我所有的index.html文件,并创建各自独立的csv文件
Region 1.1,NRPS-like,"21,469","62,957",phthoxazolin,NRP + Polyketide,4%
Region 1.2,NRPS,"74,163","124,963",nystatin,Polyketide,10%
Region 2.1,terpene,"3,800","23,263",ebelactone,Polyketide,5%
Region 2.2,NRPS-like,"55,320","97,088",indigoidine,Saccharide,17%
Region 2.3,NRPS,"144,740","193,599",streptobactin,NRP,70%
Region 2.4,siderophore,"347,862","362,833",ficellomycin,NRP,3%
Region 2.5,lassopeptide,"548,017","570,561",ikarugamycin,NRP + Polyketide:Iterative type I,12%
Region 2.6,NRPS,"628,834","683,050",himastatin,NRP,12%
Region 2.7,"NRPS,terpene","1,043,511","1,104,786",nargenicin,Polyketide,11%