python数据提取_Python——爬虫——数据提取

一、XML数据提取

(1)定义:XML指可扩展标记语言、标记语言,标签需要我们自行定义

(2)设计宗旨:是传输数据,而非显示数据,具有自我描述性

(3)节点关系:   父:每个元素及属性都有一个父、

子:每个元素可能有0个或者多个子

同胞:拥有相同的父的节点

先辈:父的父

后代:子的子

(4)XPath:是在XML中查找信息的语言,可以对XML文档元素和属性进行遍历

(5)XMLQuire是开源的XPath表达式编辑工具,Chrome插件是XPath Helper,Firefox插件Xpath Checker

(6)lxml的主要功能是如何解析和提取HTML/XMl数据,安装:pip install lxml,官方文档:lxml.de/index.html,lxm可以自动修正html代码

(7)文件读取

from lxml importetree#读取外部文件

html = etree.parse('/hello.html')

result= etree.tostring(html,pretty_print=True)

(8)获取相应的标签

from lxml importetree#读取外部文件

html = etree.parse('/hello.html')

result= etree.tostring(html,pretty_print=True)#获取

标签

result = html.xpath('//li')#获取

标签的所有class属性

result = html.xpath('//li/@class')#获取li标签下hre为link1.html的a标签

result = html.xpath('//li/a[@href="link1.html"]')#获取li标签下的span标签

result = html.xpath('//li/span')#获取最后一个li的a的href

result = html.xpath('//li[last()]/a/@href')#获取倒数第二个元素内容

result = html.xpath('//li[last()-1]/a')#获取class值为bold的标签名

result = html.xpath('//*[class="blod"]')

二、CSS选择器(BeautifulSoup)

(1)BeautifulSoup用来解析HTML比较签单,目前使用的BeautifulSoup4,安装为:pip install BeautifulSoup4

(2)引用

from bs4 import BeautifulSoup

(3)四大对象种类

1.Tag:HTMl中的一个个标签

from bs4 importBeautifulSoup

soup=BeautifulSoup(html)

result=soup.title

result=soup.head

result=soup.a

result=soup.p#它的两个重要属性 name he attrs

soup.name#[document]

soup.head.name#对于其他内部标签,输出的值便为标签本身的名称

soup.p.attrs#把p标签的所有属性打印出来,得到一个字典

soup.p['class']#传入属性的名称,等同于 soup.p.get('class')

soup.p['class'] = "newclass"

#修改值

del soup.p['class']#删除值

2.NavigableString,获取标签的内容

soup.p.string

3.BeautifulSoup:特殊的Tag对象

4.Comment:特殊的NavigableString对象

#将tag的子节点以列表的方式输出

soup.head.contents#输出的方式为列表,可以用列表的索引获取他的某一个元素

soup.head.contents[0]#.children,返回的不是list,可以用遍历获取所有的子节点

soup.head.childrenfor child insoup.body.children:print(child)#.descendants对所有子孙节点进行递归循环

for child insoup.body.descendants:print(child)

(5)搜索文档树

1.find_all*(name,attrs,recursive,text,**kwargs)

(6)CSS选择器 soup.select()

#通过标签查找

soup.select('tilte’)

#通过类名查找

soup.select('.sister')#通过ID名查找

soup.select('#link1')#组合查找

soup.select('p #link1')#直接子标签查找

soup.select("head > title")#属性查找

soup.select('a[class="sister"]')#获取内容

for title in soup.select('title')print(title.get_text())

三、JSON数据提取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用pyquery可以通过CSS选择器或XPath表达式来查找HTML文档中的元素,从而提取所需的数据。具体步骤如下: 1. 导入pyquery库:`from pyquery import PyQuery as pq` 2. 加载HTML文档:`doc = pq(html)` 3. 使用CSS选择器或XPath表达式查找元素:`doc('selector')`或`doc.xpath('xpath_expression')` 4. 提取元素的文本内容、属性值等数据:`element.text()`或`element.attr('attribute_name')` 例如,假设我们要从以下HTML文档中提取所有链接的URL地址: ```html <html> <body> <a href="https://www.baidu.com">百度</a> <a href="https://www.google.com">谷歌</a> <a href="https://www.bing.com">必应</a> </body> </html> ``` 可以使用以下代码实现: ```python from pyquery import PyQuery as pq html = ''' <html> <body> <a href="https://www.baidu.com">百度</a> <a href="https://www.google.com">谷歌</a> <a href="https://www.bing.com">必应</a> </body> </html> ''' doc = pq(html) links = doc('a') # 使用CSS选择器查找所有<a>元素 for link in links: url = pq(link).attr('href') # 提取<a>元素的href属性值 print(url) ``` 输出结果为: ``` https://www.baidu.com https://www.google.com https://www.bing.com ``` ### 回答2: Python爬虫是目前互联网上非常常见的一种数据采集方式,通过Python程序代码模拟人类浏览器行为,从目标网站上自动抓取所需数据爬虫数据提取方式有很多种,其中比较流行的一种方式就是使用pyquery查找元素。 pyquery是Python的一种强大的解析html和xml文档的库,它采用了jQuery风格的语法,对于提取数据非常方便快捷。下面我们来介绍pyquery的用法。 1. 安装pyquery库:使用pip命令可以很方便地安装pyquery库,如下所示: ``` pip install pyquery ``` 2. 导入pyquery库:在Python程序代码中导入pyquery库,如下所示: ``` from pyquery import PyQuery as pq ``` 3. 初始化pyquery对象:通过url或html文本初始化pyquery对象,如下所示: 通过url初始化: ``` doc = pq(url='http://www.baidu.com') ``` 通过html文本初始化: ``` html = ''' <html> <head> <title>python爬虫数据提取方式——使用pyquery查找元素</title> </head> <body> <div class="content" id="content-div"> <p>这是一个示例文本</p> </div> </body> </html> ''' doc = pq(html) ``` 4. 查找元素:使用find、children、siblings等方法查找元素,如下所示: 查找元素: ``` p = doc('p') ``` 查找元素属性值: ``` div_id = doc('#content-div').attr('id') ``` 5. 获取元素内容:使用text、html方法获取元素内容,如下所示: 获取文本内容: ``` p_text = p.text() ``` 获取html内容: ``` div_html = doc('#content-div').html() ``` 总之,pyquery是Python爬虫数据提取中很实用的一种工具,通过它可以快速方便地获取到所需数据。在使用pyquery时,需要了解基础的HTML语法,并掌握pyquery中的各种查找、遍历和属性操作方法。 ### 回答3: Python爬虫数据提取方式之一是使用pyquery查找元素。Pyquery是一个Python库,它是在jQuery的基础上构建的,可以用来解析和操作HTML文档。使用Pyquery可以方便快捷地从网页中提取需要的数据。 使用Pyquery查找元素的过程分为以下几步: 第一步是获取网页源代码。通常情况下,可以使用Python Requests库获取网页源代码,并将其保存为一个字符串类型的变量。 第二步是使用Pyquery构建doc对象。使用Pyquery的from_string()方法可以将网页源代码转换为Pyquery类型的对象。 第三步是通过选择器选取元素。类似于使用jQuery选择器选取元素一样,使用Pyquery的find()方法和eq()方法可以选取需要的元素。 第四步是获取元素的属性或文本值。使用Pyquery的attr()方法可以获取元素的属性值,text()方法可以获取元素的文本值。 最后是对获取的数据进行处理和存储。可以使用Python的各种数据处理和存储工具对获取的数据进行处理和存储,例如使用Pandas库进行数据分析和处理,使用MySQL或MongoDB等数据库进行数据存储。 总之,使用Pyquery查找元素是Python爬虫重要的数据提取方式之一,通过选取网页中需要的元素,并获取其属性或文本值,可以快速而准确地抓取数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值