贴吧照片和酷狗音乐简单爬取

爬取的基本步骤

很简单,主要是两大步

向url发起请求

这里注意找准对应资源的url,如果对应资源不让程序代码访问,这里可以伪装成浏览器发起请求。


解析上一步返回的源代码,从中提取想要的资源

这里解析看具体情况,一般是筛选标签之中的信息或者资源,有很多筛选的第三方包和方法

贴吧图片下载

导入 requestslxml两个第三方包,没有需要下载

找到我们需要图片资源的==url ==, 比如我这里是 贴吧图片测试 http://c.tieba.baidu.com/p/5857827920

然后就是发起请求,拿到源代码,解析资源获得下载的url,下载资源到本地

import requests
from lxml import etree# 发起请求拿到网页源代码
index_url = 'http://c.tieba.baidu.com/p/5857827920'
response = requests.get(index_url).text# 解析源代码,筛选数据
selector = etree.HTML(response)
image_urls = selector.xpath('//img[@class="BDE_Image"]/@src')offset = 0
# 拿到url下载对应文件
for image_url in image_urls:image_content = requests.get(image_url).contentoffset += 1# 将数据写入本地with open("D:/桌面/image_test/{}.jpg".format(offset), 'wb') as f:f.write(image_content)

酷狗音乐歌曲下载

步骤是差不多的,但是这里找 url 变化了一点,找到你想要下载的歌曲,并打开对应的播放页,如下:
按下F12或者是右键点击检查,我这里用的是 谷歌浏览器,打开网页的源代码



网页源代码展示



选择上面的网络或者network,点击打开



network描述

然后刷新一下网页,发起的网络请求就可以在这个界面看到,然后筛选媒体或者media,看到后缀为MP3的文件打开,多图示例:

找mp3文件



找资源url



播放界面

看到请求网址,复制它,到一个新页面打开试一下能不能播放,如果可以,那么我们要下载的资源的url就找到了。这个也就是代码中发起请求的那个资源url

直接上代码

import requests# url
m_url = 'https://webfs.hw.kugou.com/202308142239/c9d5212c77dac7daf7e3a144b167e5ef/KGTX/CLTX001/d632d77fc37a7f5fee87baf23a0944cb.mp3'# 获取源代码headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36m_resp = requests.get(m_url)'}# 这个headers就是请求标头,可以区别请求来源,会指明来源的操作系统浏览器这些信息,程序代码请求的话我们可以伪装成浏览器,加上这个标头。m_resp = requests.get(m_url, headers=headers)# 保存数据
with open("D:/桌面/test/geini.mp3", 'wb') as f:f.write(m_resp.content)

请求标头这里可以找到

请求标头
最下面的一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/69231.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天一道leetcode:797. 所有可能的路径(图论中等深度优先遍历)

今日份题目: 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节…

力扣 139. 单词拆分

题目来源:https://leetcode.cn/problems/word-break/description/ C题解:将该题视为完全背包问题,因为每个单词都可以多次用。动规五部曲分析如下: 确定dp数组以及下标的含义。dp[i] : 字符串长度为i的话,dp[i]为true…

206、仿真-51单片机锂电池蓄电池电压电流加按键控制开关状态Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

最新AI系统ChatGPT网站程序源码+搭建教程/公众号/H5端/安装配置教程/完整知识库

1、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!…

【数据结构与算法】十大经典排序算法-选择排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…

【学习FreeRTOS】第8章——FreeRTOS列表和列表项

1.列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务。列表项就是存放在列表中的项目。 列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表列表的…

github中Keyless Google Maps API在网页中显示地图和标记 无需api key

使用Google Maps API在网页中显示地图和标记的示例博客。以下是一个简单的示例: C:\pythoncode\blog\google-map-markers-gh-pages\google-map-markers-gh-pages\index.html 介绍: 在本篇博客中,我们将学习如何使用Google Maps API在网页中…

从零开始学习 Java:简单易懂的入门指南之MAth、System(十二)

常见API,MAth、System 1 Math类1.1 概述1.2 常见方法1.3 算法小题(质数)1.4 算法小题(自幂数) 2 System类2.1 概述2.2 常见方法 1 Math类 1.1 概述 tips:了解内容 查看API文档,我们可以看到API文档中关于Math类的定义如下: Math类…

转行软件测试四个月学习,第一次面试经过分享

我是去年上半年从销售行业转行到测试的,从销售公司辞职之后选择去培训班培训软件测试,经历了四个月左右的培训,在培训班结课前两周就开始投简历了,在结课的时候顺利拿到了offer。在新的公司从事软件测试工作已经将近半年有余&…

YOLOv5白皮书-第Y6周:模型改进

📌本周任务:模型改进📌 注:对yolov5l.yaml文件中的backbone模块和head模块进行改进。 任务结构图: YOLOv5s网络结构图: 原始模型代码: # YOLOv5 v6.0 backbone backbone:# [from, number, module, args]…

财务数据分析之现金流量表模板分享

现金流量表是我们常说的财务数据分析三表之一。它可以呈现一个企业的现金流情况,揭示企业经营管理健康状态,但在实际使用中却有总给人一种用不上、用不好的矛盾感。怎么才能把现金流量表做好?不如借鉴下大神的现金流量表模板。 下面介绍的是…

Uniapp当中使用腾讯位置路线规划插件保姆教学

首先我们在使用腾讯地图插件之前我们需要先做几点准备 1:我们需要在腾讯地图位置服务当中注册账号以及在控制台当中创建应用和创建key 这里在创建应用当中应用类型一定要选出行类型,否则后期可能会出现问题。 我们创建完应用之后,点击创建…