爬蟲總結3
阿新 • • 發佈:2018-12-03
1. xpath語法
//div[@id='xx']/../*[last()]/a[2]/@href
# id是xx的div的父一級標籤下的所有標籤中最後一個標籤下的第二個a標籤的名為href屬性的值
/html//a[text()="xxx"]/./text()
# html下文字內容是xxx的所有a標籤下的當前標籤(就還是那個a標籤)的文字內容
2. lxml模組的使用
from lxml import etree html_element = etree.HTML(html_str) rets = html_element.xpath('xpath_str') # rets返回list or [] # 如果xpath_str是定位標籤元素,構成rets這個列表中的每個元素都是一個element物件,可以繼續xpath! # 如果xpath_str是提取@屬性或文字(),就返回由字串構成的列表!
3. lxml模組使用注意:
# lxml.etree.HTML()會修改html_str
# 爬蟲提取資料要以lxml.etree.tostring()返回結果為準!
4. json模組
json.dumps # python資料型別-->json_str
json.loads # json_str-->python資料型別
json.dump # python資料型別-->寫入類檔案物件
json.load # 類檔案物件 讀出-->python資料型別
5. jsonpath模組
from jsonpath import jsonpath rets = jsonpath(python資料型別, '$..xxx') # python資料型別中不管位置,只要key是xxx就把值放到list中返回 # 批量快速提取某個指定key的值!
6. 關於原始字串r
a = '\n' # a是換行符!
b = r'\n' # b只是\n,不是換行符!
7. 響應內容分類
結構化
json
json模組
jsonpath
re
xml
lxml(xpath)
re
非結構化 html
lxml(xpath)
re