1 from lxml import etree 2 3 r = ''' 4 <div class="tabsConItem syllabus"> 5 <ul id="syList"> 6 <li class="item lesson" > 7 <div class="main"><a href="https://edu.51cto.com/center/course/lesson/index?id=226242" title="第一個python程序與數據存儲-1" target="_blank">第一個python程序與數據存儲-1</a></div> 8 </li> 9 <li class="item lesson" > 10 <div class="main"><a href="https://edu.51cto.com/center/course/lesson/index?id=226241" title="第一個python程序與數據存儲-2" target="_blank">第一個python程序與數據存儲-2</a></div> 11 </li> 12 <li class="item lesson" > 13 <div class="main"><a href="https://edu.51cto.com/center/course/lesson/index?id=226240" title="第一個python程序與數據存儲-3" target="_blank">第一個python程序與數據存儲-3</a></div> 14 </li> 15 <li class="item lesson" > 16 <div class="main"><a href="https://edu.51cto.com/center/course/lesson/index?id=226239" title="第一個python程序與數據存儲-4" target="_blank">第一個python程序與數據存儲-4</a></div> 17 </li> 18 <li class="item lesson" > 19 <div class="main"><a href="https://edu.51cto.com/center/course/lesson/index?id=226238" title="第一個python程序與數據存儲-5" target="_blank">第一個python程序與數據存儲-5</a></div> 20 </ul> 21 <div id="syList_loading" class="loading">加載中</div> 22 <div id="syList_Empty" class="Empty"></div> 23 </div>''' 24 ''' 25 26 ''' 27 def parse_text(): 28 html = etree.HTML(r) # 這個底層已經設定好html解析器,不需要重新設置 29 # 使用etree將爬蟲爬取保存成字符串格式的文件重新轉換成HTML格式的文件以便用xpath語法提取信息 30 print(etree.tostring(html, encoding='utf-8').decode('utf-8')) 31 def parse_lagou_file(): 32 #拉鈎網的語法不想騰訊的那么規范,因此需要調用etree.HTMLParser生成一個專門用來解析html的解析器正常解析 33 parse = etree.HTMLParser(encoding="UTF-8") 34 html2 = etree.parse('lagou.html',parser=parse) #讀取文件方式解析 35 #etree.parse('lagou.html',parser=parse)默認是使用XML解析器的 36 print(etree.tostring(html2,encoding='utf-8').decode('utf-8')) 37 if __name__ == '__main__': 38 parse_lagou_file()