首页 > 其他分享 >5、爬虫-数据的提取-xpath-html中提取

5、爬虫-数据的提取-xpath-html中提取

时间:2024-07-01 22:35:14浏览次数:1  
标签:xpath 提取 text list html video div

从哪里提取:html、json、xml

实现方式:正则、截取、xpath、css、bs4

 

这里使用xpath工具:

  ·安装:pip install lxml

 

"""
使用xpath工具
提取网页中视频的标题
"""
import requests
from lxml import etree  #使用xpath

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

url = "https://www.xinpianchang.com/discover/article-49-0?utm_source=xpcWeb&utm_medium=navigatorCate&index=11"

#获取数据
response = requests.get(url,headers=headers)

#将内容转化为html格式
tree = etree.HTML(response.text)
#使用xpath语法提取
#//表示 从匹配选择的当前节点选择文档中的节点(这里取h2节点),而不考虑它们的位置、@ 选取属性-这里选取class属性
element = tree.xpath('//h2[@class="truncate block"]')
#element = tree.xpath('//h2[@title="「建议冬至放一天假」-饿了么x许知远-时令"]')

href_g = tree.xpath('//div[@class="truncate"]')
ele = element[0]
print(f"{ele.text}")
hr_g = href_g[0]
print(f"{hr_g.text}")

#遍历所有
for all in element:
    print(f"{all.text}")

 

 

提取网页中的视频:

"""
一般使用xpath提取要一层一层的提取才能保证准确性
这里提取视频的标题和播放量和点赞量
"""
import requests
from lxml import etree

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = "https://www.xinpianchang.com/discover/article-49-0?utm_source=xpcWeb&utm_medium=navigatorCate&index=11"

#请求返回内容
response = requests.get(url, headers=headers)

#将获取到的转为html格式、方便使用xpath语法提取
tree = etree.HTML(response.text)

#使用xpath提取
#先提取最外层的、再提取单个
#注意:contains()函数表示包含 、这里表示包含属性class中的关键字"grid"  -其实class="grid grid-cols-1 ...." 提取关键字即可
#text()函数表示直接提取文本内容
video_list_one = tree.xpath('//main/div/div[contains(@class,"grid")]')[0]   #第一层路径 [0]表示只拿同级的第一个元素
video_list_two = video_list_one.xpath('./div[contains(@class,"sc")]')[0]     #第二层路径 ./表示从当前路径开始
video_list_title = video_list_two.xpath('./div/div/a/h2/text()')        #text()函数直接取文本内容

#提取播放量和点赞量、从第二层开始提
play_count = video_list_two.xpath('./div/a/div/ul/li[1]/span[2]/text()')
prise_count = video_list_two.xpath('./div/a/div/ul/li[2]/span[2]/text()')


# #这里是先取网页中的第一个视频的内容
# print(f"{video_list_one}")
# print(f"{video_list_two}")
# print(f"视频标题为:{video_list_title}-播放量为:{play_count}-点赞量:{prise_count}")


#######################################################################################################
#整合代码、提取网页中全部视频的标题、播放量和点赞量
video_lists_one = tree.xpath('//main/div/div[contains(@class,"grid")]')[0]   #第一层路径 [0]表示只拿同级的第一个元素
video_lists_two = video_list_one.xpath('./div[contains(@class,"sc")]')      #第二层路径 ./表示从当前路径开始

for video_list in video_lists_two:
    #遍历拿到每一个视频的标题
    video_lists_title = video_list.xpath('./div/div/a/h2/text()')
    #遍历每一个视频的播放量
    video_lists_play_counts= video_list.xpath('./div/a/div/ul/li[1]/span[2]/text()')
    #遍历每一个视频的点赞量
    video_lists_pries_counts = video_list.xpath('./div/a/div/ul/li[2]/span[2]/text()')

    print(f"视频标题:{video_lists_title},播放量:{video_lists_play_counts},点赞量:{video_lists_pries_counts}")

标签:xpath,提取,text,list,html,video,div
From: https://www.cnblogs.com/littlecc/p/17949746

相关文章

  • 9、爬虫-xpath-selenium爬取网页隐藏元素
    安装:pipinstalllxml1、导入:fromlxmlimportetree2、创建对象:  tree=etree.XML(xml文件)  tree=etree.HTML(html文件)  等3、找标签:  tree.xpath("//book/name/text()")4、语法:  text()表示取节点标记的文字  tree.xpath("//book/publisher[3]/text()......
  • HTML入门词典
    认识HTML标签格式HTML全称为“超文本标记语言”,通过标签对文字图像等页面元素设置格式。创建一个新元素的方法为:开标签(开始):<...(标签类型及其他内容)>元素内容:……闭标签(结束):</...(标签类型,与开始标签相同)>如使用div标签声明一段文字:<div>HelloWorld!</div>......
  • 视频转音频:怎样提取视频中的音频?6个提取音频的小技巧(建议收藏)
    怎样提取视频中的音频?当我们想从视频中提取出声音时,通常会遇到很多问题。无论是想单独提取出视频里的音频,还是把它转成方便储存或者分享的音频格式,这都会涉及到视频转音频的一个需求。因此,在这篇指南里,我们会分享6个提取音频的小技巧来帮助大家通过简单几步就能将视频转成音频......
  • HTML5+CSS3集训(16)
    图片布局案例实践 <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>p155</title></head><body><ul><li><imgsrc="巧克力.jpg......
  • HTML5+CSS3集训(15)
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title></title><style>*{margin:0;padding:0;}.q1{border:1pxsolidblack;bac......
  • HTML5+CSS3集训(14)
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>p180</title></head><body><divclass="container"><divclass="top"......
  • 中文翻译老挝语只推荐一个神器《老挝语翻译通》App,老挝语口语发音练习,支持老挝文OCR识
    出国旅游去探索东南亚的神秘国家:老挝,不会老挝语怎么办?不用怕,下载《老挝语翻译通》App帮助你把中文翻译成老挝语。功能亮点:实时翻译:实时把中文翻译成老挝语,老挝语单词或者句子均可均可准确翻译。语音识别翻译:无需打字,对着说话就能翻译,老挝语实时对话,流畅交流。OCR文字识别:......
  • html+css+js文章模板
    图片  源代码在图片后面,点赞加关注,谢谢......
  • HTML5+CSS3+JS小实例:图片九宫格
    实例:图片九宫格技术栈:HTML+CSS+JS效果:源码:【HTML】<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">......
  • 固件的提取
    固件提取的三类方法:直接从官网上找到目标型号的设备固件下载使用Telnet或者ssh从目标设备中获取固件从开发板中的flash芯片中或者通过uart和jtag调试接口将固件提取下来JTAG(JointTestActionGroup),是一种用于测试和调试电子设备的技术标准。它使用4线或5线接口,其中有一条......