我试图从this page中提取一些数据。我想提取两个字符串之间的任何文本(项目1A风险因素和项目1B未解决员工意见)。很难想出正确的正则表达式来实现这一点。在
import re
import html2text
url = "https://www.sec.gov/Archives/edgar/data/104169/000010416916000079/wmtform10-kx1312016.htm"
html = urllib.urlopen(url).read()
text = html2text.html2text(html)
regex= '(?<=Item 1A Risk Factors)(.*)(?=Item 1B Unresolved)'
match = re.search(regex, text, flags=re.IGNORECASE)
print match
上面的代码返回“none”。有什么建议吗?在
你可以用这个删除html标签
查找:
<(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</\1\s*(?=>))|(?:/?[\w:]+\s*/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]?)+\s*/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?: [\S\s]*? )|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>
替换为空:“”
然后在结果字符串上运行这个
1A\s*\.\s*RISK\s+FACTORS(.*?)1B\s*\.\s*UNRESOLVED\s+STAFF\s+COMMENTS
你想要的是捕捉组1。在
你可以在自己的应用程序中换行,或者
将组1字符串粘贴到http://www.regexformat.com应用程序中
文档,右键单击上下文菜单->其他实用程序->自动换行。
在“最大行长度”中输入大约60的值。在
它会弹出5k的环绕文本,如下所示(被截断)。在
如果您想使用regEx,可以使用以下在python3.5.2中运行的代码。 尝试打印您的“文本”以查看第1A项的实际值,该值与您在网页中看到的值(第160项1A项)不同。希望这有帮助。在
相关问题 更多 >
编程相关推荐