2011年12月29日
摘要: Python里常用的网页解析库有BeautifulSoup和lxml.html,其中前者可能更知名一点吧,熊猫开始也是使用的BeautifulSoup,但是发现它实在有几个问题绕不过去,因此最后采用的还是lxml:BeautifulSoup太慢。熊猫原来写的程序是需要提取不定网页里的正文,因此需要对网页进行很多DOM解析工作,经过测试可以认定BS平均比lxml要慢10倍左右。原因应该是libxml2+libxslt的原生C代码比python还是要更快吧BS依赖python自带的sgmllib,但是这个sgmllib至少有两个问题。首先,它解析“class=我的CSS类”这样的字符串会有问题,参 阅读全文
posted @ 2011-12-29 14:39 熊猫凶猛 阅读(8614) 评论(0) 推荐(3) 编辑
摘要: 抓取网页过程中,软件的性能瓶颈当然是网络连接,这是第一时间可以想到的。此外,通过cProfile.run和pstats.Stats,也可以清楚地看出来。一般来说,可以通过下面几个方法来解决这个问题:通过threading与multiprocessing来解决,例如#urls 包含所有需要扫描的URL#lists包含每个线程扫描的结果的列表的列表lists = []threads = []for i in range(10): temp = [] lists.append(temp) t = threading.Thread(target = check_page, args ... 阅读全文
posted @ 2011-12-29 08:23 熊猫凶猛 阅读(1057) 评论(0) 推荐(0) 编辑