结构化数据 and 非结构化数据
结构化数据:先有数据,再有结构
非结构化数据:先有结构,再有数据
数据提取方法?
1.正则表达式提取
2.xpath解析
3.BeautifulSoup4解析库
xpath解析
什么是xpath?
XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
**什么是XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
* XML 是一种标记语言,很类似 HTML
* XML 的设计宗旨是传输数据,而非显示数据
* XML 的标签需要我们自行定义。
* XML 被设计为具有自我描述性。
* XML 是 W3C 的推荐标准
常见的路径表达式?
表达式 描述
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。
//title | //price 选取文档中的所有 title 和 price 元素。
使用**
from lxml import etree
html = etree.HTML(html)
> 构造一个Xpath解析对象,并且走动修正HTML文本
text()获取标签文本
@属性名 获取标签属性值
属性多值匹配函数 contains(@class,'li')
request_cookies
#获取cookies
# pip install requests
import requests
url = 'http://www.baidu.com/'
#
#params:跟的是get请求url地址后?后面拼接的参数
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
}
response = requests.get(url=url,params=None,headers=headers)
#获取响应结果
# print(response.text) #页面源码
print(response.status_code) #状态码
print(response.headers) #响应头
# print(response.request.headers) #获取请求头
# print(response.content)