LXML网页抓取,格式错误html

问题描述:

我试图从这个网站上刮掉文章文本http://sana.sy/eng/21/2013/01/07/pr-460536.htm,但它的HTML格式不正确。任何人都可以告诉我如何正确使用它。LXML网页抓取,格式错误html

this is the code 
import urllib2 
from lxml import etree 
import StringIO 

speachesurls = ["http://sana.sy/eng/21/2013/01/07/pr-460536.htm", "http://sana.sy/eng/21/2012/06/04/pr-423234.htm", "http://sana.sy/eng/21/2012/01/12/pr-393338.htm"] 


# scrape the speaches 

for url in speachesurls: 
    result = urllib2.urlopen(url) 
    html = result.read() 
    parser = etree.HTMLParser() 
    tree = etree.parse(StringIO.StringIO(html), parser) 
    xpath = "//html/body/table[3]/tbody/tr[3]/td[4]/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/div/p" 
    a = tree.find(xpath) 
    print a.text_content() 
+0

使用不同的解析器? BeautifulSoup可以使用不同的解析器,并为它们提供相同的API(尽管没有XPath支持)。 'html5lib'可以更好地完成页面。 – 2013-04-21 18:12:56

这不是与LXML或畸形的HTML,LXML的HTML解析器可以处理的问题。

你的代码工作正常,只是你的xpath表达式不匹配任何东西,所以a将是None