首页 > 其他分享 >爬虫2(页面解析和数据提取)

爬虫2(页面解析和数据提取)

时间:2024-04-26 12:00:29浏览次数:17  
标签:etree image 爬虫 li HTML offset 解析 html 页面

爬虫2(页面解析和数据提取)

image-20240423170904547

处理HTML文件,常用Xpath,先将HTML文件转换成XML文档,然后用Xpath查找HTML节点或元素。

一、HTML与XML

image-20240423171338342

二、XPath

image-20240423171509182

1、XPath路径表达式

image-20240423171705619 image-20240423172341521

三、Lxml库

image-20240425151039240

html = etree.HTML(text)  # 将字符串转换成HTML格式

# print(etree.tostring(html))  # 补全HTML

result = html.xpath('//li/a/text()')  # 获取li标签下的a标签的文本

r = html.xpath('//li[contains(@class,"item-")]')  # 获取属性为class且包含item-的li标签

案例:下载百度贴吧页面的图片

import requests
from lxml import etree

index_url = 'https://tieba.baidu.com/p/5475267611'

response = requests.get(index_url).text

selector = etree.HTML(response)

image_urls = selector.xpath('//img[@class="BDE_Image"]/@src')

offset = 0

for image_url in image_urls:
    
    image_content = requests.get(image_url).content
    
    with open('{}.jpg'.format(offset), 'wb') as f:
        f.write(image_content)
    
    offset = offset + 1

标签:etree,image,爬虫,li,HTML,offset,解析,html,页面
From: https://www.cnblogs.com/dxmstudy/p/18159758

相关文章

  • Lmbench 的使用方法以及解析运行结果
    1.Lmbench简介Lmbench 是一款简易可以移植的内存测试工具,其主要功能有,带宽测评(读取缓存文件、拷贝内存、读/写内存、管道、TCP),延时测评(上下文切换、网络、文件系统的建立和删除、进程创建、信号处理、上层系统调用、内存读入反应时间)等功能。2.下载和安装官网地址:http://ww......
  • 中电金信:深度解析|数字化营销运营体系搭建
    ​如何更好更快地梳理好体系搭建思路,稳步实现落地?下文将为大家明确搭建的推进步骤、执行要点,帮助商业银行理顺数字化营销运营体系的“点”“线”“面”~​ ​ 与所有转型的曲折、阵痛等特征一样,商业银行构建数字化营销运营体系过程中,亦走过一些弯路,包括: ​ 我们看到......
  • bash脚本的输入参数解析
    #!/usr/bin/envbash#############################################用途:用于脚本输入参数的规范处理#测试:假设文件名为test.sh,执行./test.sh--daemon--helper=abc--host_type=os############################################curdir=`dirname"$0"`echo"curdi......
  • 【爆款推荐】初中中考阅读理解难题一网打尽!句子结构深度解析+答案揭秘,助你轻松冲刺高
    PDF格式公众号回复关键字:ZKYDT011原文1Thewriterlostherfatherattheageoffour,didn’tshe?解析1Thewriter这位作者,lost失去,herfather她的父亲,attheageoffour在4岁的时候,didn’tshe?不是吗?这位作家四岁时失去了父亲,不是吗?2Everythingcha......
  • 深入解析JavaScript的块级作用域和for循环的性能考量
    "当然,以下是一篇关于JavaScript中块级作用域和循环的深入分析的博客文章草稿:深入解析JavaScript的块级作用域和for循环的性能考量块级作用域的基本理解在JavaScript中,块级作用域是由大括号{}定义的作用域,限定了变量的可见性和生命周期。通常情况下,如if、try...catch以及with等......
  • 页面打印
    一、调出打印页面直接打印//toolbar=no,location=no,directories=no,status=no这些特征将分别隐藏工具栏、地址栏、目录按钮和状态栏。window.open(routeData.href,'newWindow','toolbar=no,location=no,directories=no,status=no,menubar=no');mounted(){......
  • zuul.core解析
    zuul.core解析这里以zuul1.2.3为例子(1.x最后一个版本)IZuulFilterzuul的核心实现,主要是filter函数功能booleanshouldFilter();用于判断是否需要执行该filterObjectrun();执行filter的处理逻辑ZuulFilterIZuulFilter的抽象实现,主要函数有以下几个:函......
  • Vue3 简单登录管理页面Demo
    目录前言项目基础配置新建项目引入组件项目配置Vue项目配置项目基本结构基础页面布局和路由搭建新增页面,简单跳转LoginViewMainViewrouterApp嵌套路由Test[1-4]Layout.vuerouter给个简单的跳转路由守护,重定向,动态路由,路由传值。这里不做展开描述简单登录页面:烂尾了总结前言这里......
  • 爬虫 第二篇 纵观
    继上篇文章采集图片后,有朋友问采集就这么简单吗?当然NoNoNo!!!!获取数据的渠道多种多样,根据需求,可以从小程序、PC、h5、app、官方接口等等获取数据。当然你从别人的地方获取数据,别人哪儿能那么轻易的让你获取到数据呢!所以就出现了各种反爬!我简单总结了几种......对UA的检......
  • vue3 使用vant4中的List分页加载时,会回滚到页面顶部
    问题项目中使用vue3+vant4,列表页使用了List来做列表加载,代码如下:<van-listv-model:loading="loading":finished="finished"finished-text="没有更多了"@load="onLoad"><divv-if="list&&list.length"class=......