当前位置:  开发笔记 > 编程语言 > 正文

使用Python进行Web抓取

如何解决《使用Python进行Web抓取》经验,为你挑选了1个好方法。

我目前正试图抓取一个格式相当差的HTML网站(通常缺少结束标签,不使用类或ID,所以直接找到你想要的元素非常困难等等).到目前为止,我一直在使用BeautifulSoup取得了一些成功,但每隔一段时间(尽管很少),我会遇到一个页面,其中BeautifulSoup创建的HTML树与(例如)Firefox或Webkit略有不同.虽然这是可以理解的,因为HTML的格式化使这种模糊,如果我能够获得与Firefox或Webkit产生相同的解析树,我将能够更容易地解析事物.问题通常是网站打开标签两次,当BeautifulSoup看到第二个标签时,它会立即关闭第一个标签,而Firefox和Webkit嵌套标签.

是否存在用于Python(甚至任何其他语言(我正在变得绝望))的Web抓取库,它可以重现由Firefox或WebKit生成的解析树(或者在模糊的情况下至少比BeautifulSoup更接近).



1> jfs..:

BeautifulSoup一棵树建设者html5lib:

from html5lib import HTMLParser, treebuilders

parser = HTMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))

text = "abc"
soup = parser.parse(text)
print soup.prettify()

输出:


 
 
 
  a
  
   b
   
    c
   
  
 

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有