常用正規表示式回顧:
單字元:
. : 除換行以外所有字元:[aoe] [a-w] 匹配集合中任意乙個字元
\d :數字 [
0-9]
\d : 非數字
\w :數字、字母、下劃線、中文
\w : 非\w
\s :所有的空白字元包,括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\s : 非空白
數量修飾:
* : 任意多次 >=0+ : 至少1次 >=1
?: 可有可無 0次或者1次
:固定m次 hello
:至少m次
:m-n次
邊界:
$ : 以某某結尾^ : 以某某開頭
分組:
(ab)貪婪模式: .*非貪婪(惰性)模式: .*?
re.i : 忽略大小寫爬取糗百資料re.m :多行匹配
re.s :單行匹配
re.sub(正規表示式, 替換內容, 字串)
import rexpath介紹import requests
from
urllib import request
import os#1
.檢查頁面資料是否為動態載入出來的#2
.獲取頁面原始碼資料
if not os.path.exists('
qiutu'):
os.mkdir(
'qiutu')
headers =
url = '
'page_text = requests.get(url=url,headers=headers).text#3
.解析img標籤的src屬性值
4.對url發請求
#5.持久化儲存
request.urlretrieve(url=img_url,filename=imgpath)
print(imgpath+'
')
3.使用:
將html文件或者xml文件轉換成乙個etree物件,然後呼叫物件中的方法查詢指定的節點
1.本地檔案
本地檔案:tree =etree.parse(檔案路徑或者一段**)tree.xpath(
"xpath表示式
")
from lxml import2.網路資料etree
html = """
"""html =etree.html(html)
print(html) #
result =etree.tostring(html)
print(result.decode("
utf-8
")) #
補全了html和body標籤
網路資料:tree =etree.html(網頁內容字串)測試頁面資料tree.xpath(
"xpath表示式
")
"en">百里守約
class="
song
">
李清照王安石蘇軾
柳宗元"
" title="
趙匡胤" target="
_self
">
this
is span
宋朝是最強大的王朝,不是軍隊的強大,而是經濟很強大,國民都很有錢
""class="
du">總為浮雲能蔽日,長安不見使人愁
" alt="" />
class="
tang
">
屬性定位:
#找到class屬性值為song的div標籤//div[@class="song"]
層級&索引定位:
#找到class屬性值為tang的div的直系子標籤ul下的第二個子標籤li下的直系子標籤a//div[@class="tang"]/ul/li[2]/a
邏輯運算:
#找到href屬性值為空且class屬性值為du的a標籤//a[@href="" and @class="du"]
模糊匹配:
//div[contains(@class, "ng")]
//div[starts-with(@class, "ta")]
取文字:
# /表示獲取某個標籤下的文字內容58二手房資料# //表示獲取某個標籤下的文字內容和所有子標籤下的文字內容
//div[@class="song"]/p[1]/text()
//div[@class="tang"]
//text()
取屬性:
//div[@class="tang"]
//li[2]/a/@href
import requestsfrom
lxml import etree
#獲取頁面原始碼資料
url = '
'headers =
page_text = requests.get(url=url,headers=headers).text
#例項化etree物件且將頁面原始碼資料載入到該物件中
#對詳情頁發起請求,獲取頁面資料
detail_page_text = requests.get(url=detail_url,headers=headers).text
tree =etree.html(detail_page_text)
desc = tree.xpath('
//div[@class="general-item-wrap"]//text()')
desc = ''.join(desc).strip('
\n \b \t')
dic =
print(all_data_list)
Python之爬蟲 etree和XPath實戰
下面 是在 上找到的乙個例子,空閒的時候可以自己除錯。coding utf 8 爬蟲 創業邦 創業公司資訊爬取 網頁url 爬取頁面中的創業公司,融資階段,創業領域,成立時間和創業公司的鏈結資訊。使用到requests,json,codecs,lxml等庫 requests用於訪問頁面,獲取頁面的源...
爬蟲基礎之Xpath!
參見 參見div 1 獲取本頁面第乙個div div last 獲取本頁面最後乙個div div last 1 獲取倒數第二個div div 1 div last 獲取第乙個div和最後乙個div 從根節點擊取 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置 div class title...
python 爬蟲之xpath用法
xpath全稱為xml path language一種小型的查詢語言,在爬蟲中,我們其實就是拿它來搜尋html文件,僅此而已。而網頁內容只有通過解析才能進行搜尋,所以使用xpath時,需要引入lxml庫,這個庫就是來解析網頁,協助xpath進行搜尋的。lxml庫的安裝,可以直接使用 pip3 ins...