过滤js时,SGMLParser失当

lioujian47 2008-07-14 03:30:57
我抓取网页的时候没有过滤js,结果报错:

Traceback (most recent call last):
File "F:\Python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "F:\Python25\CTR_my_way.py", line 190, in <module>
print cn2juhao(body(i,j))
File "F:\Python25\CTR_my_way.py", line 131, in body
parser.feed(html)
File "F:\Python25\lib\sgmllib.py", line 99, in feed
self.goahead(0)
File "F:\Python25\lib\sgmllib.py", line 169, in goahead
k = self.parse_declaration(i)
File "F:\Python25\lib\markupbase.py", line 98, in parse_declaration
decltype, j = self._scan_name(j, i)
File "F:\Python25\lib\markupbase.py", line 388, in _scan_name
% rawdata[declstartpos:declstartpos+20])
File "F:\Python25\lib\sgmllib.py", line 106, in error
raise SGMLParseError(message)
SGMLParseError: expected name token at '<!!---["+bb+"]-start'

估计是SGMLParser失当,原因如同这位大哥所说,但我却不知道如何使用re避免这种情况.高手们,帮个忙吧?
...全文
210 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lioujian47 2008-07-14
  • 打赏
  • 举报
回复
Thanks a lot
^.^
maplele20 2008-07-14
  • 打赏
  • 举报
回复
这个问题应该是<script>xxx<!--xxxx--></script>这种格式嵌套引起的。
解决方法:
1.

html = re.sub('onload=\"\s*[^\"]*\"','',html)
html = re.sub('onmouseover=\"\s*[^\"]*\"','',html)
#修改为:
html = re.sub(r'b2="[^"].*"', '', html)
html = re.sub(r'e2="[^"].*"', '', html)
html = re.sub(r'b="[^"].*"', '', html)
html = re.sub(r'e="[^"].*"', '', html)


2.

html = re.sub('onload=\"\s*[^\"]*\"','',html)
html = re.sub('onmouseover=\"\s*[^\"]*\"','',html)
#修改为:
html = re.sub(r'<![^-->].*-->','',html)

lioujian47 2008-07-14
  • 打赏
  • 举报
回复
随便我再提一下,有个modlue叫IEC,具体见这里:http://www.mayukhbose.com/python/IEC/index.php,其中有个将html转换成txt的功能,perfect!!!,但我不知道他的code是怎么样的:(

我猜,如果有人能把这个搞下来就很cool了
lioujian47 2008-07-14
  • 打赏
  • 举报
回复

def body(url1,url2):
try:
html = urllib.urlopen(url1).read()
except Exception, e:
html = urllib.urlopen(url2).read()
#txt = unicode(txt,"gbk")
html = re.sub('onload=\"\s*[^\"]*\"','',html)
html = re.sub('onmouseover=\"\s*[^\"]*\"','',html)
parser = html2txt()
parser.feed(html)
parser.close()
return parser.text

url1 = r'http://finance.cctv.com/20080714/100223.shtml'
url2 = r'http://finance.cctv.com/20080714/100223.shtml'

这样就能看到错误了
maplele20 2008-07-14
  • 打赏
  • 举报
回复
你抓去网页的网址是什么?
内容概要:本文基于Matlab/Simulink平台,对电励磁同步电机在异步牵入、稳态运行及能耗制动三个阶段的全周期动态特性进行建模仿真与系统研究。研究构建了完整的电机数学模型与仿真系统,重点分析了电机从异步启动到同步运行的过渡过程、稳态运行时的电磁与机械性能,以及执行能耗制动时的减速特性与能量耗散机理。通过仿真,揭示了励磁电流、负载转矩与转速在不同工况下的动态响应规律与耦合关系,为电机的控制策略设计与性能优化提供了理论依据和数据支持。; 适合人群:具备电机学、电力电子与电力拖动基础知识的电气工程及相关专业的研究生、科研人员与工程技术人员。; 使用场景及目标:①研究电励磁同步电机的启动特性,解决异步牵入过程不稳定或失败的问题;②分析电机在不同负载下的稳态运行性能,优化运行效率;③设计和验证能耗制动策略,精确控制制动过程的减速时间和能量消耗。; 阅读建议:在学习过程中,应结合电机的基本原理,深入理解仿真模型中各模块(如电机本体、励磁控制、负载模型)的搭建逻辑,并通过调整仿真参数(如励磁电压、负载大小)来观察和分析系统动态响应,以加深对电机全周期运行特性的理解。
内容概要:通过介绍短时倒谱(Cepstrogram)计算方法,开展时-倒频分析研究,深入探讨倒谱分析机理、短时倒谱构建逻辑及时-倒频分析的内涵。文中系统对比了时-倒频分析与全局倒谱、传统时频分析方法的差异,阐明其在卷积特征解耦、非平稳信号跟踪、微弱周期特征增强及多维特征融合方面的技术优势,并分析其在语音识别、机械故障诊断、音频处理和非平稳时序信号分析中的典型应用,同时指出其在分辨率、计算复杂度等方面的局限性并提出优化方向。; 适合人群:具备一定信号处理或数据分析基础,从事机械、通信、声学或自动化等领域研究的研发人员及研究生。; 使用场景及目标:① 掌握短时倒谱与时-倒频分析的理论基础与实现方法;② 应用于语音信号处理、机械设备故障诊断、音频相似性检测等工程实践;③ 对比传统方法,提升对复杂非平稳信号中隐含周期特征的识别能力; 阅读建议:此资源以Matlab代码实现为核心,强调理论与实践结合,建议读者在理解核心算法原理的基础上,动手运行代码并调试参数,结合具体应用场景深化对方法适用性与局限性的认识。
摘 要 在数字经济与保险行业深度融合的背景下,传统保险服务普遍存在流程繁琐、信息不对称、线下办理效率低、管理成本高、理赔不透明等问题,已难以适应用户便捷化服务需求与行业数字化发展趋势。推动保险业务线上化、服务智能化、管理平台化,成为提升保险服务质量与运营效率的关键路径。 本文以在线保险服务与管理平台为研究对象,依据软件工程规范,采用 Spring Boot + Vue.js 前后端分离架构,结合 MySQL 数据库完成系统设计与实现。平台面向普通用户与管理员两类角色,涵盖注册登录、保险产品展示、在线投保、智能核保、保单管理、理赔申请、消息通知、保险知识科普、后台管理及数据统计等核心功能,实现保险服务全流程线上化、投保便捷化、保单管理智能化、理赔过程透明化、后台运营高效化。 系统依次完成需求分析、总体设计、详细设计、功能实现与全面测试。测试结果表明,平台在功能完整性、接口响应性能、数据安全防护及多浏览器兼容性方面均达到设计目标,运行稳定可靠。该平台可有效改善传统保险服务痛点,提升用户体验与管理效率,可为保险行业数字化转型提供实用的工程实践参考。 关键词:在线保险;服务平台;Spring Boot;Vue.js;前后端分离;保险数字化

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧