1. 程式人生 > >爬蟲總結3

爬蟲總結3

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