我有一堆HTML,我每周从网站下载一次,需要从中获取一些信息,不知道从哪里开始。
我有大约100个这样的文件在文件中重复,并希望从中获取2行。
数字2 - 电脑
3天前6月22日,12日11,589个文件/ 4,363 MB
<td width="242"><div align="left"><span class="style9">
<span class="style9"><img src="pic.pn" width="32" height="32" border="0" style="vertical-align:text-top;" />number2 ‑‑computer</span><br />
.....
<div align="left">License:<br />Backup:<br />Files:</div></td><td width="186" valign="top" nowrap><div align="left" nowrap>
<span class="black" nowrap><span class="black">Paid Unlimited</span>
<br />3 days ago on Jun 22, 12<br />11,589 files / 4,363 MB</span></td>
<td width="92" valign="top"> </td></tr>
.....
</div></td>
答案 0 :(得分:0)
首先,尝试从字符串中删除所有HTML标记。
>>> import re
>>> def remove_html_tags(data):
... p = re.compile(r'<.*?>')
... return p.sub('', data)
...
>>> stripped = remove_html_tags(unescape(html_source))
>>> stripped
u'\nnumber2 \xa0\u2011\u2011computer\n.....\nLicense:Backup:Files:\nPaid\xa0Unlimited\n3\xa0days\xa0ago\xa0on\xa0Jun\xa022,\xa01211,589 files / 4,363\xa0MB\n\xa0\n.....\n'
然后是普通搜索/分组/重新匹配的问题
unescape
感谢Fredrik Lundh
这应该让你去。
答案 1 :(得分:0)
你需要做的是在文本的每一行后面放一个'\ n'(如果你把文件作为字符串加载,它就会那样。)你需要在文本中搜索那部分并以较短的形式保存文本。如果搜索和文本被正确的字符串替换,则下面的脚本可以工作
#insurt text to search and to be searched
search = '<td width="242"><div align="left"><span class="style9">\n<span class="style9"><img src="pic.pn" width="32" height="32" border="0" style="vertical-align:text-top;" />number2 ‑‑computer</span><br />\n.....\n<div align="left">License:<br />Backup:<br />Files:</div></td><td width="186" valign="top" nowrap><div align="left" nowrap>\n<span class="black" nowrap><span class="black">Paid Unlimited</span>\n<br />3 days ago on Jun 22, 12<br />11,589 files / 4,363 MB</span></td>\n<td width="92" valign="top"> </td></tr>\n.....\n</div></td>\n'
text = 'a\n'+98*search+'\nb'
changed = 0
for x in range(len(text)):
if text[x:x+len(search)] == search:
if changed >= 2:
text = text[0:x]+' '+text[x+len(search):] # to place a replacement text, switch ' ' for 'replacement text'
changed += 1
print(text)