当前位置: 首页 > news >正文

网站建设推广入什么费用/广告接单平台app

网站建设推广入什么费用,广告接单平台app,系统显示没有安装wordpress,三门峡网站优化pyquery 前文PyQuery库官方文档pyquery的初始化 字符串初始化URL初始化和文件初始化基本css选择器 查找元素 子元素父元素祖先节点兄弟元素遍历获取信息 获取属性获取文本获取htmlDOM操作 attr、css伪类选择器首推官方文档:http://pyquery.readthedocs.io 前文 pyquery库是jQ…

pyquery

  • 前文
  • PyQuery库官方文档
  • pyquery的初始化
    • 字符串初始化
    • URL初始化和文件初始化
  • 基本css选择器
    • 查找元素
      • 子元素
      • 父元素
      • 祖先节点
      • 兄弟元素
  • 遍历
  • 获取信息
    • 获取属性
    • 获取文本
    • 获取html
  • DOM操作
    • attr、css
  • 伪类选择器


首推官方文档:http://pyquery.readthedocs.io

 

前文

pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好,和它差不多的还有BeautifulSoup,都是用来解析的。相比BeautifulSoup完美翔实的文档,虽然PyQuery库的文档弱爆了, 但是使用起来还是可以的,有些地方用起来很方便简洁。

PyQuery库官方文档

  • 初始化为PyQuery对象
  • 常用的CCS选择器
  • 伪类选择器
  • 查找标签
  • 获取标签信息

pyquery的初始化

初始化方式,有三种,

  • 可以传入字符串,
  • 传入url,
  • 传入文件。

字符串初始化

html = '''
<div><ul><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div>
'''

URL初始化和文件初始化

from pyquery import PyQuery as pq
doc = pq(html)#声明pq对象
print(doc('li'))#用css选择器来实现,如果要选id前面加#,如果选class,前面加.,如果选标签名,什么也不加URL初始化
也可以直接传入URL,进行URL初始化,程序会自动请求URL,获得html并返回要查找的字符串
from pyquery import PyQuery as pq
doc = pq(url='http://www.baidu.com')#程序会自动请求url
print(doc('head'))#返回head标签文件初始化
from pyquery import PyQuery as pq
doc = pq(filename='D://demo.html')#直接传入文件名称及路径,程序会自动寻找并请求
print(doc('li'))

基本css选择器

html = '''
<div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
print(doc('#container .list li'))#会查找id为container class为list,标签为li的对象,只是层级关系,没有后者一定是前者的子对象

这里我们需要注意的一个地方是doc(’#container .list li’),这里的三者之间的并不是必须要挨着,只要是层级关系就可以,下面是常用的CSS选择器方法:

选择器属性解释说明
.class.color选择class="color"的所有元素
#id#info选择id="info"的所有元素
**选择所有元素
elementp选择所有p元素
element,elementdiv,p选择所有div元素和所有p元素
element,elementdiv p选择div标签内部的所有p元素
[arrtibute][target]选择带有target属性的所有元素
[arrtibute=value][target=_blank]选择带有target="_blank"的所有元素

查找元素


html = '''
<div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div>
'''

子元素

from pyquery import PyQuery as pq
doc = pq(html)
items = doc('.list')#拿到items
print(type(items))
print(items)
lis = items.find('li')#利用find方法,查找items里面的li标签,得到的lis也可以继续调用find方法往下查找,层层剥离
print(type(lis))
print(lis)也可以用.children()查找直接子元素
lis = items.children()
print(type(lis))
print(lis)
lis = items.children('.active')
print(lis)

父元素

html = '''
<div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
items = doc('.list')
container = items.parent()#.parent()查找对象的父元素
print(type(container))
print(container)

祖先节点

parents = items.parents()#.parents()祖先节点
parent = items.parents('.wrap')#当然也可以传入参数
print(parent)

兄弟元素

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.list .item-0.active')#空格表示里面,没有空格表示整体
print(li.siblings())#.siblings()兄弟元素,即同级别的元素,不包括自己

遍历

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
lis = doc('li').items()#.items会是一个生成器
print(type(lis))
for li in lis:print(li)

获取信息

获取属性

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
a = doc('.item-0.active a')
print(a)
print(a.attr('href'))#定义a标签的href属性用于指定超链接目标的URL。 如果用户选择了a标签中的内容,那么浏览器会尝试检索并显示href属性指定的URL所表示的文档,或者执行JavaScript表达式、方法和函数的列表。
print(a.attr.href)
-----------------------------------------------------
结果:
<a href="link3.html"><span class="bold">third item</span></a>
link3.html
link3.html

获取文本

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
a = doc('.item-0.active a')
print(a)
print(a.text)#.text()获取文本信息

获取html

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.item-0.active')
print(li)
print(li.html())#.html()获取所在html

DOM操作

首推官方文档参考:http://pyquery.readthedocs.io/en/latest/api.html
addClass、removeClass

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.item-0.active')
print(li)
li.removeClass('active')#删除
print(li)
li.addClass('active')#增加
print(li)

attr、css

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.item-0.active')
print(li)
li.attr('name', 'link')#增加一个属性
print(li)
li.css('font-size', '14px')#增加一个css
print(li)
-------------------------------------------------------------------------------
结果:
< li class ="item-0 active" > < a href="link3.html" > < span class ="bold" > third item < / span > < / a > < / li >
< li class ="item-0 active" name="link" > < a href="link3.html" > < span class ="bold" > third item < / span > < / a > < / li >
< li class ="item-0 active" name="link" style="font-size: 14px" > < a href="link3.html" > < span class ="bold" > third item < / span > < / a > < / li >

remove

html = '''
<div class="wrap">Hello, World<p>This is a paragraph.</p></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
wrap = doc('.wrap')
print(wrap.text())
wrap.find('p').remove()#找到p标签然后删除
print(wrap.text())
结果:
Hello, World This is a paragraph.
Hello, World

伪类选择器

首推官方文档参考: http://www.w3school.com.cn/css/index.asp

html = '''
<div class="wrap"><div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1 active"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></li></ul></div></div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('li:first-child')
print(li)
li = doc('li:last-child')
print(li)
li = doc('li:nth-child(2)')
print(li)
li = doc('li:gt(2)')
print(li)
li = doc('li:nth-child(2n)')
print(li)
li = doc('li:contains(second)')
print(li)
-------------------------------------------------------------------------
结果:
< li class ="item-0" > first item < / li >
< li class ="item-0" > < a href="link5.html" > fifth item < / a > < / li >
< li class ="item-1" > < a href="link2.html" > second item < / a > < / li >
< li class ="item-1 active" > < a href="link4.html" > fourth item < / a > < / li >
< li class ="item-0" > < a href="link5.html" > fifth item < / a > < / li >
< li class ="item-1" > < a href="link2.html" > second item < / a > < / li >
< li class ="item-1 active" > < a href="link4.html" > fourth item < / a > < / li >
< li class ="item-1" > < a href="link2.html" > second item < / a > < / li >
http://www.lbrq.cn/news/838405.html

相关文章:

  • 自己的主机做网站服务器/it培训班
  • 专门做企业名录的网站/谷歌seo怎么做
  • 衢州网站建设平台/seo的特点是什么
  • 天津做网站外包公司有哪些/web网址
  • 本地东莞网站建设/官方百度下载安装
  • hbuider 做网站/seminar什么意思中文
  • b2b电子商务网站的收益模式是什么?/爱站长尾词挖掘工具
  • 大连做网站 智域/站长工具app官方下载
  • 胶州企业网站建设/百度地图客服人工电话
  • 网页开发环境一般写什么/东莞seo外包平台
  • 河北省建设网站锁安装什么驱动/指数查询
  • 做药的常用网站/网站建设报价方案
  • 邯山区建设局网站/网络科技公司
  • 网站被挂黑链/百度指数官网查询
  • 南宁最高端网站建设/晋中网站seo
  • 品牌策划公司名字大全/石家庄seo按天扣费
  • 厦门哪些做鲜花的网站/抖音关键词查询工具
  • 徐州免费网站建站模板/广州百度网站快速排名
  • vps网站如何绑定多个域名/建站开发
  • 网站建设的岗位要求/雅虎搜索引擎中文版
  • 宁波专业网站推广平台咨询/培训机构需要什么资质
  • 铆钉机 东莞网站建设/优化关键词步骤
  • 人大 网站建设 方案/百度付费问答平台
  • 广西平台网站建设报价/宁波seo网络推广
  • 辽宁响应式网站费用/淘宝指数官网的网址
  • 网站服务器怎么优化/百度官网优化
  • 网络架构1788/seo刷排名公司
  • 自助 建站/黄山seo
  • 贵州省建设厅考证官方网站/建站公司网站建设
  • 网站线框图怎样做/有没有免费推广平台
  • 一款基于PHP开发的不良事件上报系统源码,适用于医院安全管理。系统提供10类事件类别、50余种表单,支持在线填报、匿名上报及紧急报告。
  • Vue在线预览Excel和Docx格式文件
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • alpineLinux修改包管理为国内源
  • kube-proxy 中 IPVS 与 iptables
  • [Pytest][Part 5]单条测试和用例集测试