爬虫总结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

猜你喜欢

转载自blog.csdn.net/u012087012/article/details/84751340
今日推荐