Jac*_*nds 9 python firefox webkit web-scraping
我目前正试图抓取一个格式相当差的HTML网站(通常缺少结束标签,不使用类或ID,所以直接找到你想要的元素非常困难等等).到目前为止,我一直在使用BeautifulSoup取得了一些成功,但每隔一段时间(尽管很少),我会遇到一个页面,其中BeautifulSoup创建的HTML树与(例如)Firefox或Webkit略有不同.虽然这是可以理解的,因为HTML的格式化使这种模糊,如果我能够获得与Firefox或Webkit产生相同的解析树,我将能够更容易地解析事物.问题通常是网站打开<b>标签两次,当BeautifulSoup看到第二个<b>标签时,它会立即关闭第一个标签,而Firefox和Webkit嵌套<b>标签.
是否存在用于Python(甚至任何其他语言(我正在变得绝望))的Web抓取库,它可以重现由Firefox或WebKit生成的解析树(或者在模糊的情况下至少比BeautifulSoup更接近).
jfs*_*jfs 10
用BeautifulSoup一棵树建设者html5lib:
from html5lib import HTMLParser, treebuilders
parser = HTMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))
text = "a<b>b<b>c"
soup = parser.parse(text)
print soup.prettify()
Run Code Online (Sandbox Code Playgroud)
输出:
<html>
<head>
</head>
<body>
a
<b>
b
<b>
c
</b>
</b>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4285 次 |
| 最近记录: |