爬虫保存图文(按序)

浏览器插件原理与实战:安全获取无水印媒体资源的技术解析 在Web开发与内容处理中,网络资源嗅探与媒体文件下载是常见需求,其核心原理在于理解HTTP协议、前端资源加载机制及浏览器扩展开发。通过监听页面网络请求、解析动态资源地址,技术工具能够定位并捕获视频、图片等媒体文件。这一技术对于内容分析、素材归档、本地化处理等工程实践具有重要价值,尤其在合规学习、二次创作辅助等场景下,能提升工作效率。本文以豆包平台为例,结合浏览器插件方案,深入探讨了如何通过安全、可控的方式实现资源获取,并强调了版权保护与数据安全的重要性,为开发者与内容工作者提供了兼顾实用性与合规性的技术路径 阅读详情

浏览器驱动

from time import time, sleep
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options  # chrome设置


class Driver:
    def __init__(self, headless=False):
        self.t = time()
        options = Options()
        options.headless = headless  # 设置浏览器为【无头】
        self.d = Chrome(chrome_options=options)

    def close(self):
        self.d.quit()
        t = (time() - self.t) / 60
        print('%.2f分钟' % t)

    def get(self, url):
        self.d.get(url)
        sleep(9)
        return self.d.page_source

    def test_xpath(self, url, xpath):
        from lxml import etree
        html = self.get(url)
        element = etree.HTML(html, etree.HTMLParser())
        return element.xpath(xpath)


def run_xpath(url, xpath):
    d = Driver()
    try:
        ls = d.test_xpath(url, xpath)
    except Exception as e:
        ls = repr(e).split('\\n')
    finally:
        d.close()
    return '\n'.join(ls)


if __name__ == '__main__':
    url = 'https://blog.youkuaiyun.com/Yellow_python'
    xpath = '//*[@id="asideProfile"]/div[3]/dl[2]/dd/@title'
    print(run_xpath(url, xpath))
    url = '123'
    xpath = '123'
    print(run_xpath(url, xpath))

图文保存

from time import time, sleep
from selenium.webdriver import Chrome
from requests import get
from urllib.parse import urlsplit, urljoin
import os, re


def red(*args):
    for a in args:
        print('\033[031m{}\033[0m'.format(a))


PATH = 'DOWNLOAD/'
SECONDS = 5


class Driver:
    """网页下载"""
    def __init__(self):
        self.t = time()
        self.d = Chrome()

    def close(self):
        self.d.quit()
        t = (time() - self.t) / 60
        print('%.2f分钟' % t)

    def get(self, url):
        self.d.get(url)
        sleep(SECONDS)
        return self.d.page_source


def get_img(url, times=3):
    """下载图片"""
    if times < 0:
        return b''
    headers = {'User-Agent': 'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;360SE)'}
    try:
        r = get(url, headers=headers, timeout=30)
    except Exception as e:
        red(url, times, e)
        return get_img(url, times - 1)
    if r.status_code == 200:
        return r.content
    else:
        red(url, times, r.status_code)
        return get_img(url, times - 1)


def save_img(url_img, catalog, name):
    """下载并保存图片"""
    suffixes = ['.gif', '.jpg', '.png', '.svg']
    for suffix in suffixes:
        if suffix in url_img:
            path_img = name + suffix
            break
    else:
        path_img = name + suffixes[1]
    path_img_abs = os.path.join(catalog, path_img)
    content = get_img(url_img)
    with open(path_img_abs, 'wb') as f:
        f.write(content)
    return path_img


def mkdir(path):
    """创建文件夹"""
    if not os.path.exists(path):
        os.mkdir(path)


def join_url(url, postfix):
    """补全URL"""
    tu = urlsplit(url)
    domain = tu[0] + '://' + tu[1]
    return urljoin(domain, postfix)


def save_html(html, path, url):
    """HTML图文保存"""
    # 创建文件夹
    mkdir(path)
    # 保存网址
    with open(path + '/url.txt', 'w', encoding='utf-8') as f:
        f.write(url)
    # 提取图片链接
    url_imgs = re.findall('img[^>]+src="([^"]+)"', html)
    for i, url_img in enumerate(url_imgs, 1):
        # URL补全
        url_total = join_url(url, url_img)
        # 图片路径
        path_img = '%02d' % i
        # 保存图片
        path_img = save_img(url_total, path, path_img)
        # 替换图片路径
        html = html.replace(url_img, path_img, 1)
    # 保存html
    with open(path + '/0.html', 'w', encoding='utf-8') as f:
        f.write(html)


def download_html(url, path):
    mkdir(PATH)
    d = Driver()
    try:
        html = d.get(url)  # 网页下载
        save_html(html, os.path.join(PATH, path), url)  # 图文保存
    except Exception as e:
        print('\033[031m{}\033[0m'.format(e))
    finally:
        d.close()


if __name__ == '__main__':
    download_html('https://github.com/AryeYellow', 'a')
    download_html('https://me.youkuaiyun.com/Yellow_python', 'b')

采集效果

RTX 4060本地运行Gemma 4实现截图转HTML 截图转HTML是一种将UI设计图像自动解析为语义化、可维护前端代码的技术,其核心依赖视觉-语言多模态理解与DOM结构建模能力。传统方案常受限于大模型显存占用高、云端延迟大、生成结果缺乏Web标准兼容性等问题。Gemma 4视觉版通过轻量CNN视觉编码器、跨模态token注入机制及DOM树结构感知微调,在8GB显存的RTX 4060上实现离线、低延迟、高准确率的HTML生成,支持BEM规范命名、响应式基础和无障碍属性增强。该技术适用于前端快速原型开发、设计稿合规审计、老旧系统现代化重构等工程场景,是面向中小团 阅读详情

相关推荐

Python 爬虫实战案例:景点介绍图文批量保存爬虫项目

各位正在学习 Python 爬虫的小伙伴大家好,相信不少人练爬虫的时候都遇到过一个问题:网上零散的示例,要么只教提取文字,要么单独演示图片下载,很难找到一套完整的图文同步采集、自动分类归档的实战代码。平时做自媒体素材收集、文旅资料整理,想要批量收集景点介绍和配套实拍图,手动复制粘贴、一张张保存图片效率太低,十几个景点就要耗费大量时间。今天我们完整落地一套景点图文批量爬虫项目,目标就是自动抓取景点详情页面的文字介绍与配图,自动建立分类文件夹,文字存为文档、图片单独保存,做到全自动素材采集。

2503_91057718的博客 1222

爬虫之理——爬虫基础(图文详解)

爬虫理论——爬虫基础:本文将介绍爬虫的概念,爬虫的作用,爬虫的分类和爬虫的流程

Ztnow的博客 895

【信息科学与工程学】【安全领域】第七十篇 负载均衡设备的主要算法01

每个服务器有一个对槽位的偏好排序, 调度器(表)需要为每个槽位分配一个服务器, 目标是整体上满足所有服务器的偏好(即均匀填充), 同时保持稳定性(变化小)。: 对于一个新到达的请求, 如果将其分配到当前有cj个请求(包括正在服务的)的服务器sj, 其期望等待时间为 (cj + 1) / μj。输入:服务器集群S={s1, s2, ..., sn}, 权重W={w1, w2, ..., wn}, 当前指针i。输出:选中的服务器sj。输入:服务器集群S, 各服务器当前活动连接数cj, 各服务器预设权重wj。

weixin_49199313的博客 527

004:Python爬虫实战 由易到难(图文解析)

相信有了前面三章的基础了解,我们对爬虫的基础知识已经有所掌握。 本篇内容是从易到难给大家讲解一些常用爬虫的手写。 包括图片爬虫、链接爬虫、多线程爬虫等等。 京东图片爬虫实战: 实现目标:将京东商城手机类的商品图片全部下载到本地。 首先打开京东首页。选择我们要下载的商品分类链接。 点击链接之后,我们会看到这样一个Url 这就是我们要爬取的第一个页面。 复制下来他的url。https://list...

李玺 1万+

Windows 10下Gpg4win 4.3.1安装与配置全攻略:从下载到邮件加密实战

本文详细介绍了在Windows 10系统下安装和配置Gpg4win 4.3.1的全过程,包括下载、验证、自定义安装以及密钥管理。特别重点讲解了如何通过Kleopatra证书管理器进行密钥创建和管理,以及在Outlook中实现邮件加密的实战操作,帮助用户全面提升数据安全防护能力。

weixin_29271263的博客 302

python爬虫图片实例-【图文详解】python爬虫实战——5分钟做个图片自动下载器...

我想要(下)的,我现在就要python爬虫实战——图片自动下载器之前介绍了那么多基本知识【Python爬虫】入门知识(没看的赶紧去看)大家也估计手痒了。想要实际做个小东西来看看,毕竟:talk is cheap show me the code!制作爬虫的基本步骤顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤。一般来说,制作一个爬虫需要分以下几个步骤:分析需求(对,需求分析非常重要,不要...

weixin_37988176的博客 154

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

[教程]图文:爬虫

安装requests 安装BeautifulSoup4 查看bs4 请求页面区块 postman ajax响应数据信息 获取节点信息 转载于:https://www.cnblogs.com/viviwong345/p/6999515.html

weixin_34306446的博客 148

全志V3S开发板实战:从零构建嵌入式Linux系统

本文提供了一份针对全志V3S开发板(如LicheePi Zero)的零基础教程,详细指导如何从零开始构建嵌入式Linux系统。内容涵盖编译环境搭建、交叉工具链配置、U-Boot引导程序编译与烧录、Linux内核定制与编译,以及使用Buildroot构建根文件系统,最终实现系统成功启动,帮助开发者深入理解嵌入式系统构建全流程。

tensor9flow的博客 575

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw)

本文仅根据官网介绍分析,存在纰漏仅供参考。

技术札记 5397

小白爬虫入门——爬取图片和文字(超详细)

使用lxml包,从简单的网页中获取文本和图片 爬取网址:http://www.pythonscraping.com/pages/page3.htm 第一步 ,看网页结构 F12打开开发者模式,大致网页结构如下,看图: 下面这个图片是针对一个tr标签的详解,代码与显示一一对应: 第二步 ,代码解释 lxml简单使用 在自己想爬取的文本位置上单击右键,选择copy–&...

HYeeee的博客 3万+

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

亲爱的同学,毕设是不是让你既期待创新又担心技术门槛?如果你的毕设方向是计算机视觉、智能检测,那这个绝对能成为你的“毕设王牌”。从数据准备到界面开发,我会把整个项目拆成“傻瓜式”步骤,让你能一步步做出属于自己的毕设成果。

know_F0727的博客 106

python爬取图解_python爬虫如何按序抓取一个页面上的图文?

import requestsimport refrom bs4 import BeautifulSoup as bsdef crawl_all_main_url(page=10):# 默认抓取官网前十页招聘信息的urlall_url_list = []for _ in range(1, page+1):url = 'http://zjc.ecit.edu.cn/jy/app/newslist.p...

weixin_39963819的博客 217

MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration)

激光雷达传感器和相机通常在自动驾驶应用中结合使用,因为激光雷达传感器收集三维空间信息,而相机则以二维图像捕捉空间的外观和纹理。您可以融合来自这些传感器的数据来改进物体检测和分类。激光雷达-相机标定可以估算出一个变换矩阵,给出两个传感器之间的相对旋转和平移。在进行激光雷达-相机数据融合时,您可以使用该矩阵。本图说明了激光雷达和相机标定 (LCC) 过程的工作流程,我们使用棋盘格作为标定对象。我们从激光雷达和相机数据中提取棋盘角和平面,然后在它们的坐标系之间建立几何关系,进行标定。

机器人控制与仿真应用 7372

199、影像技术 roadmap 规划:未来移动影像的技术趋势与芯片算力展望

本文探讨了未来移动影像技术的发展趋势与芯片算力规划。作者从实际案例出发,指出影像技术演进需平衡传感器、ISP、算力和功耗。文章分为三部分:1)传感器将从堆像素转向提升信息密度,重点关注双层晶体管结构、混合快门和多光谱技术;2)ISP架构将向可编程计算单元转型,强调神经网络加速、硬件化多帧融合和语义处理;3)芯片算力瓶颈在于数据搬运,需优化存算一体架构、专用DMA和统一内存。最后给出五点建议:避免盲目追高像素、重视持续功耗、平衡ISP灵活性、预留算力余量、加强传感器与ISP协同设计。作者强调,影像技术的突破在

sundong_81的博客 60

如何批量保存抖音视频不带水印?抖音批量下载工具 douyin-downloader 实践

周报要交,得把某个竞品账号最近的五十条作品存下来逐条分析。逐条打开、等加载、再存成带水印的版本,并不现实。douyin-downloader 项目处理的就是这类场景:它是一个抖音批量下载工具,解析单条链接或整个主页,无水印地批量保存视频与图文,并带有 SQLite 去重和浏览器兜底。下面从安装到首次跑通走一遍最小路径,再拆一个兜底机制和三套可直接复制的配置。 ## 🧭 抖音下载工具安装步骤:从

gitblog_00008的博客 276

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

高效采集与质量保障:XHS-Downloader无水印批量下载解决方案

XHS-Downloader是一款基于AIOHTTP模块实现的开源工具,专为小红书内容采集设计,提供无水印图片与视频下载、批量处理等核心功能。该工具通过浏览器脚本与命令行双模式操作,满足不同用户群体的使用需求,显著提升内容获取效率与质量控制水平。 ## 价值定位:重新定义小红书内容获取方式 在数字内容创作领域,高质量素材的获取效率直接影响创作生产力。XHS-Downloader通过技术优化,解

gitblog_00387的博客 447

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CoverVid源码逐行解析:缩放因子计算Cover比例背后的数学原理

CoverVid 是一款轻量级的 JavaScript 插件(同时提供 jQuery 扩展),它能让 HTML5 `<video>` 像背景图片一样"铺满"任意尺寸的容器,即模拟 CSS 中 `background-size: cover` 的行为。整个插件压缩后仅 800 字节,而其"Cover 效果"的全部秘密,就藏在两个缩放因子(Scale Factor)的比较大小说算里。 本文将逐行带你

gitblog_00418的博客 107

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

QQ空间历史说说完整备份:GetQzonehistory 全量归档实践

GetQzonehistory 是一个开源的 QQ 空间历史数据归档工具,通过模拟登录与接口分页,把账号下所有可见说说的文本、图片、评论抓取为本地 Excel、图片目录和网页版存档。它面向的读者是希望把多年社交数据沉淀为可检索、可迁移资产的开发者,以及有长期数字记忆保存需求的技术型普通用户。 ## 数据留在别人服务器上的代价 说说、图片、评论都托管在空间服务器上,但这份档案的所有权并不完全属于

gitblog_00892的博客 642

Python零基础自学指南:从环境搭建到项目实战的完整学习路径

Python作为一门简洁高效的编程语言,其核心价值在于通过清晰的语法和丰富的生态库,将复杂任务自动化。理解其基础语法、数据结构与函数定义是掌握编程逻辑的第一步,这为后续处理实际数据与构建应用奠定了基石。在工程实践中,pip包管理工具和requests等第三方库的运用,极大地扩展了Python在数据分析、自动化脚本及AI应用开发等场景的能力。本文聚焦于如何为初学者构建一条从零开始、可验证的学习路径,通过环境搭建、核心语法、文件操作到微型项目实战的阶段性目标,帮助学习者将教程知识转化为解决实际问题的编程技能,并

weixin_33739646的博客 465

Nginx Admins Handbook 精讲:HTTP 协议基础原理与 NGINX 实战配置全解析

HTTP(超文本传输协议)是 Web 世界的基石,也是 NGINX 作为 Web 服务器、反向代理和负载均衡器时每天都在打交道的协议。本文以 nginx-admins-handbook 仓库的 [doc/HTTP_BASICS.md](https://link.gitcode.com/i/ea4e06a7b157d28403d3017da856bad3) 为核心骨架,系统梳理 HTTP 的架构模型

gitblog_00696的博客 234

3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”!

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤潮平两岸阔,风正一帆悬。1. 为"你"而写 这篇文章,是专...

pdcfighting的博客 474

python爬虫之爬取百度图片(图文并排,炒鸡详细!!!)

第一步:登录百度图片官网,截图如下所示: 注意点一:开头必须是https(如上图所示,出现锁的标志),不能是http,否则后期下载图片文件会出错 第二步:输入关键字,页面加载出来之后,按F12进入开发者模式,由于百度图片ajax动态加载,点击network选项卡,重新刷新页面,查看XHR数据,截图如下所示: 第三步:分析多个XHR,得出规律,每一个页面所请求的url所携带的参数只有pn,rn,...

王小平 2370

Python3爬虫 抓取网页的html 保存

1. Python3爬虫  保存抓取网页的html REF:  https://blog.youkuaiyun.com/u014453898/article/details/73459938 2017年06月19日 12:15:05 ZJE_ANDY 阅读数:1602  版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/u014453898/article...

liugaoxingliushi的专栏 7207
上一篇: Python3【时空复杂度】测试
下一篇: Python实现SSH
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值