在iPython上使用BeautifulSoup,我试图在javascript脚本中获取一些html元素,但是我在编码方面有一些问题。在
这个页面是法语的,所以有很多重音,有些是直接用源代码编写的,有些是用html代码编写的。在
示例: 在
html_doc = """<html>
<body>
<p>voilà</p>
<p>déjà vu</p>
<p>c'est la vie !</p>
<script type="text/javascript">
...
varHTML = '<p>voilà</p>
<p>déjà vu</p>
<p>c\'est la vie !</p>';
...
</script>
</body>
</html>"""
from bs4 import BeautifulSoup
BeautifulSoup(html_doc)
我得到的结果是:
^{pr2}$如您所见,在第一部分中,除了javascript之外,所有的重音都是可以的。但是对于javascript中的html,beauthoulsoup并没有将é
和{
我怎么解决这个问题?在
额外问题:
在这个例子中,beauthoulsoup正确地转换了C\'est
中的C\'est
,但是在我在线阅读的html页面中,beauthulsoup在结果中保留了“\”,当撇号在javascript部分中被转义时,我得到:
<html>
<body>
<p>voilà</p>
<p>déjà vu</p>
<p>c'est la vie !</p>
<script type="text/javascript">
...
varHTML = '<p>voilà</p>
<p>déjà vu</p>
<p>c\'est la vie !</p>';
...
</script>
</body>
</html>
你能理解为什么吗?在
最后,我希望javascript中的所有html部分都作为javascript之外的部分。在
非常感谢你的帮助! 格里戈里
我终于解决了。在
使用Regex,我将html部分作为文本提取到javascript中,然后对其重新应用beauthoulsoup以获得可读的html代码:
给出:
<p>voilà</p><p>déjà vu</p><p>c'est la vie !</p>
关于奖金问题:
问题是网页上的初始代码被双重转义。 所以代码不是
C\'est
,而是C\\\'est
。在我用这个函数解决了这个问题:
^{pr2}$希望有一天能有人看到它,它不是复制品!在
格里戈里
相关问题 更多 >
编程相关推荐