3

所以我需要从一些 HTML 中提取一些脑力激荡的代码,而到目前为止我一直在做的事情是行不通的。HTML 看起来像这样

<div class="style7" style="text-align: justify; overflow: auto;">
        <br />++++++++++[>++++++++++++>+++++++++++>++++++++++++>+++++++++++>++++++++++>++++++++++++>++++++++++>++++++++++>+++++++++++>+++++++++++>++++++++++>++++++++++++<<<<<<<<<<<<-]>-----.>++++.>---.>-.>+++.>+.>+++.>++.>+.>---.>-.>-----.<br /><br /><br />
</div>

我正在使用 Python 和 BeautifulSoup。我可以从整个文档中很好地抓住 div,但我似乎无法从
标签之间获得全部的大脑。

我该怎么做呢?谢谢

编辑:

在查看 BeautifulSoup 加载的内容后,它似乎实际上删除了一大块代码。请求内容包含所有内容,但汤没有。

除了 BeautifulSoup,还有更好的解析方法吗?也许是原始 HTML 上的正则表达式?

4

2 回答 2

2

你的意思是这样吗?

from bs4 import BeautifulSoup
html = '''
<div class="style7" style="text-align: justify; overflow: auto;">
        <br />++++++++++[>++++++++++++>+++++++++++>++++++++++++>+++++++++++>++++++++++>++++++++++++>++++++++++>++++++++++>+++++++++++>+++++++++++>++++++++++>++++++++++++<<<<<<<<<<<<-]>-----.>++++.>---.>-.>+++.>+.>+++.>++.>+.>---.>-.>-----.<br /><br /><br />
</div>
'''
soup = BeautifulSoup(html)
div_tag = soup.find('div', attrs={'class':'style7'})
div_tag.text.strip()
u'++++++++++[>++++++++++++>+++++++++++>++++++++++++>+++++++++++>++++++++++>++++++++++++>++++++++++>++++++++++>+++++++++++>+++++++++++>++++++++++>++++++++++++<<<<<<<<<<<<-]>-----.>++++.>---.>-.>+++.>+.>+++.>++.>+.>---.>-.>-----.'
于 2014-04-13T16:32:17.897 回答
1

我注意到当 HTML 被加载到一个汤中时,它删除了一大块脑残代码。这使得不可能得到一切。如果它不这样做,那么 shaktimaan 的解决方案将起作用。

相反,我在请求内容中获取了字符串,并使用正则表达式来获取 Brainfuck 代码。

m = re.search('<br />[[\]<>.,+-]+<br />', r.content)

这把它抓住了,然后你只需要去掉前导和尾随<br />就可以了。

于 2014-04-13T18:26:17.900 回答