Python爬虫:xpath对HTML文件进行本地读取进行测试
本地文件
<html lang="en"> <head> <meta charset="UTF-8" /> <title>测试bs4</title> </head> <body> <div> <p>百里守约</p> </div> <div class="song"> <p>李清照</p> <p>王安石</p> <p>苏轼</p> <p>柳宗元</p> <a href="http://www.song.com/" title="赵匡胤" target="_self"> <span>this is span</span> 宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a> <a href="" class="du">总为浮云能蔽日,长安不见使人愁</a> <img src="http://www.baidu.com/meinv.jpg" alt="" /> </div> <div class="tang"> <ul> <li><a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a></li> <li><a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a></li> <li><a href="http://www.126.com" alt="qi">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a></li> <li><a href="http://www.sina.com" class="du">杜甫</a></li> <li><a href="http://www.dudu.com" class="du">杜牧</a></li> <li><b>杜小月</b></li> <li><i>度蜜月</i></li> <li><a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a></li> </ul> </div> </body> </html>
import requests from lxml import etree tree = etree.parse(0113.html) r1 = tree.xpath(/html/body/div) # 直接从上往下挨着找节点 r2 = tree.xpath(/html//div) # 跳跃了一个节点来找到这个div节点的对象 r3 = tree.xpath(//div) ##跳跃上面所有节点来寻找div节点的对象 # r1, r2, r3 # print(r1) # print(r2) # print(r3) r4=tree.xpath(//div[@class="song"]) # print(r4) r5=tree.xpath(//div[@class="song"]/p) # print(r5) # r6=tree.xpath(//div[@class="tang"]//li[5]/a/text())[0] r6=tree.xpath(//div[@class="tang"]//li/a/text())[1] # print(r6) r7=tree.xpath(//li//text()) # print(r7) r8=tree.xpath(//div[@class="song"]/img/@src) # print(r8) r9=tree.xpath(//@href) print(r9)
