10M的html文件怎么打开快,如何使用BeautifulSoup加速解析10MB的HTML文件

我正在使用Beautifulsoup解析大型HTMl文件,范围在3到10MB之间.不幸的是,99%的数据是我要解析的内容.该文件实际上包含一个小标题,一些js脚本,然后是1,000到10,000个项目.每个项目由以下表格行组成:

alttext

[content1][content2][content3][content4][content5][content6][content7][content8][content9][content10][content11][content12][content13]

[content14]

[content15]

[content16]

[content16]

[content17]

请注意,每个[content]占位符都是我需要解析的相关数据.

我尝试了各种常见的优化,例如a)使用不同的解析器,b)使用SoupStrainer,c)定义编码

b)和c)当我记录所需的时间时实际上没有效果.不同的解析器具有重大影响.当我在1.5k项目列表(相对较小的列表)上运行下面的脚本时,我得到以下解析时间(我在2012年Mac Book Air上运行实验):

#1653 items parsed in 15.5 seconds with lxml

#xml takes 27 sec

#html5lib takes 69 sec

#html.parser takes 24 sec

current = datetime.datetime.utcnow()

strainer = SoupStrainer('table', attrs={'id':'contenttable'})

soup = BeautifulSoup(html,'lxml',parse_only=strainer,from_encoding="UTF-8")

print datetime.datetime.utcnow() - current

问题:除了我到目前为止使用的内容,我是否可以使用任何调整来大大缩短解析时间?

到目前为止,我只能想到增加CPU功率.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值