xpath比较少见的一些用法
- 查找如上h1标签下面的两个同级tab标签
div_h1 = et.xpath(u'//div/h1[contains(text(), "社保信息")]/following-sibling::table')
# com_dict['company_zch'] = ''.join(div.xpath(u".//span[contains(text(), '社会信用代码')]/following-sibling::*[1]/text()")).strip()
- 补全清理标签
有时候会遇到xpath获取不到的情况,这种情况很可能是html标签不规范等因素引起的,此时可以使用bs4的一个方法来清理标签,然后在xpath解析
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from lxml import etree
from bs4 import BeautifulSoup
s = open('1.html').read()
soup = BeautifulSoup(s, 'html5lib', from_encoding='utf-8')
html = soup.prettify()
et = etree.HTML(html)
content = et.xpath('string(.//div[@id="Zoom"])')
print content