etree.xpath 使用
參考網站:https://www.w3school.com.cn/xpath/xpath_functions.asp
第1步導入lxml模塊
第2步 初始化准備要用處理的文件或者字符串
第3步,按照各種規則來提取第2步已經處理好的html
第一種:利用現有的html文件導入
from lxml import etree html = etree.parse('./maoyan.html',etree.HTMLParser(encoding='utf-8')) //利用現有的html文件導入,使用方法 result01 = html.xpath('//i/ancestor::dd')
第2種,利用代碼中的定義的text
BeautifulSoup
參考網站:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#id14
第1步,導入BeautifulSoup
第2步,初始化准備要用處理的文件或者字符串
第3步,按照各種規則來提取第2步已經處理好的html
兩種構造方法: soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>")
from bs4 import BeautifulSoup
#使用已經有的html來處理,建議使用open先打開html,因為如果有中文字符的話,直接打開的話會出現中文亂碼問題
html = open('maoyan.html','r',encoding='utf-8')
soup = BeautifulSoup(html,'lxml')
pyquery
參考網站:https://pyquery.readthedocs.io/en/latest/index.html
第1步,
導入from pyquery import PyQuery as pq
第2步:初始化需要處理要用處理的文件或者字符串
第3步,按照各種規則來提取第2步已經處理好的html
構造方法: from pyquery import PyQuery as pq from lxml import etree import urllib
1、直接字符串
doc = pq("<html></html>") pq 參數可以直接傳入 HTML 代碼,doc 現在就相當於 jQuery 里面的 $ 符號了
2、lxml.etree
doc = pq(etree.fromstring("<html></html>"))
可以首先用 lxml 的 etree 處理一下代碼,這樣如果你的 HTML 代碼出現一些不完整或者疏漏,都會自動轉化為完整清晰結構的 HTML代碼。
3、直接傳URL
doc = pq('http://www.baidu.com')
這里就像直接請求了一個網頁一樣,類似用 urllib2 來直接請求這個鏈接,得到 HTML 代碼
4、傳文件
doc = pq(filename='hello.html')可以直接傳文件名
說明: