Day4_解析器和selenium
程序员文章站
2022-07-14 18:54:22
...
Day4_解析器和selenium
pyQuery
1.创建一个PyQuery对象
- 导入该模块
from pyquery import PyQuery
- PyQuery对象的本质就是一个容器
- PyQuery(需要解析的是html的字符串)
html = open('test.html', encoding='utf-8').read()
pq = PyQuery(html) # pq对应容器中只有一个html标签
- 通过选择器获取子标签
- PyQuery对象(选择器) - 获取css选择器选中的标签对应的pyQuery对象
ps = pq('p')
print(ps, type(ps))
- 在整个html中获取b标签(pq对应的容器中只加html一个标签)
print(pq('b'))
- 在所的p标签中获得b标签(ps对应的容器中是整个页面中所有p标签)
print(ps('b'))
print(PyQuery(ps[0])('b'))
- 获取标签内容
- PyQuery对象.text( )
- 同时获取所有a标签的内容
result = pq('a').text()
print(result)
- 单独获取每个a标签的内容
for a in pq('a'):
print(PyQuery(a).text())
- 获取标签属性+
-
PyQuery对象.attr(属性名)
-
获取第一个a标签的href属性
result = pq('a').attr('href')
print(result)
- 获取每个a标签的href属性
for a in pq('a'):
print(PyQuery(a).attr('href'))
xpath
- 构建指定树结构并获取根节点
from lxml import etree
html = etree.HTML(open('test.html', 'r', encoding='utf-8').read())
print(type(open('test.html', 'r', encoding='utf-8').read()))
- 根据路径获取节点(标签)
- 节点对象.xpath(路径) - 获取指定路径对应的所有节点对象对应的列表
a_list = html.xpath('/html/body/a')
print(a_list) # 所有a标签的列表
- 路径
-
绝对路径:/绝对路径
注意:绝对路径必须从树结构的根节点开始写(html树结构就是从html开始写)
result1 = html.xpath('/html/body/a/b')
print(result1)
-
相对路径:
. - 表示当前节点(谁去点xpath的就是谁为当前节点) (./可以省略)
… - 表示当前节点的父节点
路径的最后加’/text()'是用来获取标签的内容
result4 = a_list[0].xpath('../p')
print(result4)
result5 = a_list[0].xpath('./b/text()')
print(result5)
-
// - 全文检索
//p - 获取整个页面中所有的p标签对应的节点
//div/p - 获取整个页面中在div下面的p标签
- 获取内容和属性
- 获取内容 - 在路径的最后添加/text( )
- 获取属性 - 在路径的最后添加/@属性名
- 谓语
- [N] - 获取第N个指定标签(在路径中可以添加[N])
- [last()] - 最后一个
- [last()-1] - 倒数第二个
- [last()-N] - 倒数第二N+1个
- [position()<N] - 前N-1个
- [position()>N] - N+1到后面所有
- [@属性名] - 获取拥有指定属性的标签
- [@属性名 = 值] - 获取指定属性为值的标签
- [子标签名>值],[子标签名>=值],[子标签名<值],[子标签名<=值],[子标签名=值] - 按照子标签的内容进行筛选
- 通配符 - *
- 表示任意节点的任意属性
- 多项选择 - |
- 路径1|路径2 - 路径1和路径2的所有标签对象
selenium
- 进入网页
from selenium import webdriver
# 创建浏览器对象(谷歌浏览器)
b = webdriver.Chrome()
b.get('https://www.jd.com')
print(b.page_source)
上一篇: day08元组、字典、字符串
下一篇: 03字符串、列表、元组、字典
推荐阅读
-
centos系统下搭建selenium server结合php完成自动化网站测试和采集数据
-
selenium+python自动化测试之鼠标和键盘事件
-
利用selenium和ffmpeg爬取m3u8 ts视频《进击的巨人》
-
selenium+python自动化测试之鼠标和键盘事件
-
利用selenium 3.7和python3添加cookie模拟登陆的实现
-
python+selenium打印当前页面的titl和url方法
-
Python+Selenium笔记(七):WebDriver和WebElement
-
python selenium 对浏览器标签页进行关闭和切换的方法
-
Selenium3 + Python3自动化测试系列四——鼠标事件和键盘事件
-
python3+robotframework3+selenium3分层设计和截图及注意事项