首页 > 编程知识 正文

python解析页面元素(python获取页面元素)

时间:2023-11-29 19:12:35 阅读:310271 作者:NKJT

本文目录一览:

  • 1、用Python爬取网页并用xpath解析,得到一个内容相同的集合,为什么
  • 2、「python爬虫保姆级教学」urllib的使用以及页面解析
  • 3、python3怎么抓取
  • 4、怎样用Python的BeautifulSoup修改页面里的元素?
  • 5、如何利用Python自动完成对网页平台上可点击的元素操作,用什么模块,具体函数有哪些,请大神指教
  • 6、Python解析库lxml与xpath用法总结

用Python爬取网页并用xpath解析,得到一个内容相同的集合,为什么

问题出在你每次得到的都是同一个list 每次取list[0] 当然永远是重复的第一个元素。

问题出在这个//*[@id="newsRegion"]/ul/li 取得的所有的li不是一个个别的li。返回的list 虽然有几十个元素,但每一个用后面的xpath匹配都是可以得到相同的结果

「python爬虫保姆级教学」urllib的使用以及页面解析

使用urllib来获取百度首页的源码

get请求参数,如果是中文,需要对中文进行编码,如下面这样,如果不编码会报错。

urlencode应用场景:多个参数的时候。如下

为什么要学习handler?

为什么需要代理?因为有的网站是禁止爬虫的,如果用真实的ip去爬虫,容易被封掉。

2.解析技术

1.安装lxml库

2.导入lxml.etree

3.etree.parse() 解析本地文件

4.etree.HTML() 服务器响应文件

5.解析获取DOM元素

1.路径查询

2.谓词查询

3.属性查询

4.模糊查询

5.内容查询

6.逻辑运算

示例:

JsonPath只能解析本地文件。

pip安装:

jsonpath的使用:

示例:

解析上面的json数据

缺点:效率没有lxml的效率高

优点:接口设计人性化,使用方便

pip install bs4 -i

from bs4 import BeautifulSoup

1.根据标签名查找节点

soup.a.attrs

2.函数

find(‘a’):只找到第一个a标签

find(‘a’, title=‘名字’)

find(‘a’, class_=‘名字’)

find_all(‘a’) :查找到所有的a

find_all([‘a’, ‘span’]) 返回所有的a和span

find_all(‘a’, limit=2) 只找前两个a

obj.string

obj.get_text()【推荐】

tag.name:获取标签名

tag.attrs:将属性值作为一个字典返回

obj.attrs.get(‘title’)【常用】

obj.get(‘title’)

obj[‘title’]

示例:

使用BeautifulSoup解析上面的html

python3怎么抓取

页面解析有多种方法。

1. 使用beautifulsoup框架。

from bs4 import BeautifulSoup

bs = BeautifulSoup('网页源码', "html.parser")

bs.table # 可以直接获取table元素

bs.find('table',attrs = {'class':'mytable'}) # 查找class属性值为mytable的table元素

# 具体方法可以参见官方文档 

2. 使用正则表达式

怎样用Python的BeautifulSoup修改页面里的元素?

BeautifulSoup是不能够直接修改tag的值的,但是可以修改tag中的属性的值:

例如,把rows从142改为153,把cols改为33等等;

如果只是输出显示的话,可以使用Python的replace:

mystring='textarea name="text" rows="142" cols="23" wrap="physic"sdasd/textarea'

soup=BeautifulSoup(mystring)

print str(soup.textarea).replace('sdasd','new')

如何利用Python自动完成对网页平台上可点击的元素操作,用什么模块,具体函数有哪些,请大神指教

用selenium就可以了,它模拟打开浏览器,打开网页。

通过页面元素的特征,定位到要点击的元素,click()方法就可以完成点击

比如

self.driver.find_element_by_xpath('//ul[@class="uhomeTagList-ul"]/li[2]').click()

Python解析库lxml与xpath用法总结

本文主要围绕以xpath和lxml库进行展开:

一、xpath 概念、xpath节点、xpath语法、xpath轴、xpath运算符

二、lxml的安装、lxml的使用、lxml案例

一、xpath

1.xpath概念

XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式在 XML 文档中进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。

2.xpath节点

xpath有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

节点关系:父、子、兄弟、先辈、后辈。

3.xpath语法

xpath语法在W3c网站上有详细的介绍,这里截取部分知识,供大家学习。

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

XPath 通配符可用来选取未知的 XML 元素。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

通过在路径表达式中使用"|"运算符,您可以选取若干个路径。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

4.xpath 轴

轴可定义相对于当前节点的节点集。

5.xpath运算符

下面列出了可用在 XPath 表达式中的运算符:

好了,xpath的内容就这么多了。接下来我们要介绍一个神器lxml,他的速度很快,曾经一直是我使用beautifulsoup时最钟爱的解析器,没有之一,因为他的速度的确比其他的html.parser 和html5lib快了许多。

二、lxml

1.lxml安装

lxml 是一个xpath格式解析模块,安装很方便,直接pip install lxml 或者easy_install lxml即可。

2.lxml 使用

lxml提供了两种解析网页的方式,一种是你解析自己写的离线网页时,另一种 则是解析线上网页。

导入包:

1.解析离线网页:

2.解析在线网页:

那么我们怎么获取这些标签和标签对应的属性值了,很简单,首先获取标签只需你这样做:

然后我们可以,比方说,你要获取a标签内的文本和它的属性href所对应的值,有两种方法,

1.表达式内获取

2.表达式外获取

这样就完成了获取,怎么样,是不是很简单了,哈哈哈。

下面再来lxml的解析规则:

3.lxml案例

为了偷懒,我决定还是采用urllib那篇文章的代码,哈哈哈,机智如我。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。