从HTML中提取brainfuck代码

时间:2014-04-13 16:27:39

标签: python beautifulsoup brainfuck

所以我需要从一些HTML中提取一些brainfuck代码,到目前为止我一直在做的事情不起作用。 HTML看起来像这样

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

我正在使用Python和BeautifulSoup。我可以从整个文件中抓住div,但我似乎无法从标签之间获得整个脑袋。

我该怎么做呢?感谢

编辑:

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

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

2 个答案:

答案 0 :(得分: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'++++++++++[>++++++++++++>+++++++++++>++++++++++++>+++++++++++>++++++++++>++++++++++++>++++++++++>++++++++++>+++++++++++>+++++++++++>++++++++++>++++++++++++<<<<<<<<<<<<-]>-----.>++++.>---.>-.>+++.>+.>+++.>++.>+.>---.>-.>-----.'

答案 1 :(得分:1)

我注意到,当HTML加载到汤中时,它删除了大量的脑泡代码。这使得无法获得一切。如果它不这样做那么shaktimaan的解决方案将起作用。

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

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

这会抓住它,然后你只需要剥离前导和尾随<br />,这很好。