1.html:超文本标记语言 <!DOCTYPE html>
2.<meta charset="UTF-8">申明字符类型
3.需关注html css
4.div <class_ id >
5.树形关系:先辈、父、子、兄弟、后代
6.xpath:从文档中定位元素
可将其理解为语言
‘/’从根节点进行选取
‘//’从匹配选择的当前结点来对文档的结点进行选择
‘.’选取当前结点
‘..’选择当前节点的父节点
‘@’选择属性
/html
body/div 选择属于body 的子元素中的所有div元素
//div 选取所有div标签的子元素,而不管他们在html文档中的位置
@lang 选取名称为lang的所有属性
2通配符:
* 匹配任何元素结点
@* 匹配任何属性结点
//* 选择文档当中的所有元素
//title[@*] 选取带有属性的title元素
| 路径表达式中,| 代表的是和的关系
//body/div | //table/li 选取body元素的所有div元素和 li元素
//div | //li 选取所有div和li元素
3.beautifulsoup
什么是beautifulsoup ?
是一个可以从html或者是xml文件中提取数据的一个python 库
pip install beautifulsoup4
使用:from bs4 import BeautifulSoup
html_doc = " "
html_file = open(html_doc,"r",encoding ="gbk")
html_handle = html_file.read()
html_handle.encode(encoding = "utf-8")
soup = BeautifulSoup(html_handle,'html.parser')
print(soup)
print(soup.head)
print(soup.p) #这样只可以获取第一个p标签
#获取结点中的属性
print(soup.p.attrs) #获取p标签中的属性
#获取所有的p标签
ps=soup.fing_all("p")
print(ps)
#用属性进行定位
#一般用id 进行定位相对而言比较简单
result = soup.find_all(id = "")
print(result)
#按照css进行搜索
jobs = soup.find_all("td",class_="jobs')
#用正则表达式提取数据
import re
#解析:
re:是正则表达式库,.表示所有数据,{2,5}表示字节数,str表示将数据
转换为字符串格式,因为findall只接受字符串类型
r = re.findall(">(.{2,5})</a>".str(names))
print(r)
4.scrapy框架
pip install scrapy
#如果遇到错误,则运行下面两条语句,因为scrpy框架是基于下面两个库
pip install --upgrade incremental
pip install Twisted
总结,个人感觉用beautifulsoup加正则表达式爬取一些简单的网页便够用了!