python requests爬蟲使用lxml解析HTML獲取資訊不對等的問題
阿新 • • 發佈:2018-12-03
python requests爬蟲使用lxml解析HTML獲取資訊不對等的問題
我們在用lxml解析HTML文字時,有時會碰到“<”p“>”標籤有換行“<“br”>”的情況,如果我們用獲取xpath的方法,迴圈獲得該元素下的所有text()文字,同一個“<”p“>”標籤會出現兩段內容,解決辦法是替換掉網頁文字內容:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author pudding import requests from lxml import etree url = 'http://******' data = requests.get(url) r = data.content html_doc = str(r, 'utf-8') # 此舉旨在正確編碼,避免亂碼 s = etree.HTML(html_doc.read().replace('<br>', '').replace('</br>', ''))
這樣便可達到目的。
phone = s.xpath('//*[@id="content"]/table//text()')
for index, ph in enumerate(phone):
if index > 0:
sheet_one.write(index + 1, 3, str(ph))