编程小白的自学笔记十(python爬虫入门二+实例代码详解)

news2025/1/24 14:53:42

系列文章目录

编程小白的自学笔记九(python爬虫入门+代码详解)

编程小白的自学笔记八(python中的多线程) 

 编程小白的自学笔记七(python中类的继承)

 编程小白的自学笔记六(python中类的静态方法和动态方法)

编程小白的自学笔记五(Python类的方法) 


目录

系列文章目录

前言

一、如何查找网页的headers

二、如何查找top200数据

总结


前面我们已经学习了第三方模块requests模块的get函数,今天我们继续深入学习


一、如何查找网页的headers

通过上次的学习,我们发现我们需要传参headers来骗过服务器,从而让服务器相信是一个正常浏览器在访问它,并不是每一台计算的headers都相同,我们怎么知道呢?我们可以使用浏览器正常访问,然后在检查模式下查看,具体操作如下: 

1、打开网页的检查模式。用谷歌浏览器打开网页后,右击鼠标,点击检查。

 

2、选择Network。打开检查模式后,我们在右边的检查模式窗口,点击Network。

3、选择name。打开Network后,我们发现没有内容,这时点击键盘上的F5键,页面刷新后,出现了name选项卡。

 

 4、查找User-Agent。点击name选项卡里的html文件,然后在右边找到User-Agent,然后把里面的内容复制到python就行了,代码如下:

import re
url = 'https://www.kugou.com/yy/rank/home/1-8888.html'
h = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
try:
    req = requests.get(url,headers=h)
    songs = re.findall(r'<li.*?title="(.*?)"',req.text)
    for song in songs:
        print(song)
except:
print('查询失败')

结果输出和上一篇文章一样。 

二、如何查找top200数据

上面的代码只能获取一个网页的数据,只能获得top20的数据,我们想要获取top200的数据,难道要写个十个代码。 

 No~,经过研究链接,我们发现,把后面的1-8888改成2-8888就翻页到第二面,以此类推,top180-200的链接是10-8888,链接本质上是以字符串的形式传给url,这样我们可以设置一个变量,通过for循环的形式,自动改变url的地址。我们来看一下代码:

import requests
import re
for i in range(1,11):
    url = f'https://www.kugou.com/yy/rank/home/{i}-8888.html'
    h = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
    try:
        req = requests.get(url,headers=h)
        songs = re.findall(r'<li.*?title="(.*?)"',req.text)
        for song in songs:
            print(song)
    except:
        print('查询失败')

输出的结果为:

苏星婕 - 听悲伤的情歌

指尖笑 - 不问ciaga

郭顶 - 凄美地

一只白羊 - 等不到的你

任夏 - 悲伤的爱情

张靓颖、王赫野 - 是你 (Live)

Mae Stephens - If We Ever Broke Up (Explicit)

Kui Kui - 宝贝在干嘛

张紫豪 - 可不可以

周杰伦 - 说好的幸福呢

周杰伦 - 晴天

汪苏泷、吉克隽逸 - Letting Go (Live)

承桓 - 我会等

蔡健雅 - Letting Go

任夏 - 失眠情歌 (Live合唱版)

苏星婕 - 吹着晚风想起你

周杰伦 - 我落泪情绪零碎

云狗蛋 - 天若有情

程响 - 可能

A-Lin - 天若有情

RE-D、是二哈ya、masta - 肯定

G.E.M. 邓紫棋 - 喜欢你

周杰伦 - 蒲公英的约定

胡彦斌 - 你要的全拿走

赵雷 - 我记得

BEYOND - 海阔天空

周杰伦 - 兰亭序

李宇春 - 下个,路口,见

郭静 - 心墙

黄静美、张俊波 - 我借人间二两墨

Wiz_H张子豪 - 一般的一天

曲肖冰 - 谁

G.E.M. 邓紫棋 - 多远都要在一起

Ailee - HEAVEN (Original Version)

蔡健雅 - 达尔文

王蓝茵 - 恶作剧

宝石Gem - 电梯战神 (Live)

羊羊 - 用情

周杰伦 - 明明就

盛哲 - 在你的身边

Taylor Swift - Love Story

Kelly Clarkson - Catch My Breath

张碧晨 - 开往早晨的午夜

cici_ - 把回忆拼好给你

周杰伦 - 稻香

周杰伦 - 花海

林俊杰 - 裹着心的光

Hillsong Young & Free - Wake (Studio)

周杰伦 - 七里香

买辣椒也用券 - 起风了

EXO - Baby, Don't Cry (인어의 눈물)

林俊杰 - 达尔文

周杰伦 - 我是如此相信

蔡健雅 - 红色高跟鞋

Lulleaux、Kid Princess - Empty Love

指尖笑 - 不问别离

蔡健雅 - 达尔文 II

永彬Ryan.B - 像极了

周杰伦 - 反方向的钟

王菲 - 如愿

告五人 - 爱人错过

周杰伦 - 说了再见

余超颖 - 春泥

周杰伦 - 最长的电影

侯泽润 - 有一种爱是你在

JISOO - 꽃 (FLOWER)

田馥甄 - 小幸运

周杰伦 - 爱在西元前

耳朵便利店 - 我不信你不惭愧

苏星婕 - 把回忆拼好给你

Ari Abdul - BABYDOLL (Speed) (Explicit)

Lil笑笑 - 山茶花读不懂白玫瑰

曾浩然 - 我的美丽

黄静美 - 庄周一生梦一蝶

周杰伦 - 一路向北

锤娜丽莎 - 我太笨

薛之谦 - 崇拜

陈奕迅 - 爱情转移

AGA - 孤雏

RAiNBOW计划、雷雨心 - 记念

小咪 - 我走后

DP龙猪、王云宏、陷阱表哥 - 翠花

林俊杰 - 不潮不用花钱

周林枫 - 忘了

周杰伦 - 青花瓷

胜屿 - 特别的爱给特别的你

五月天 - 后来的我们

FIFTY FIFTY - Cupid

Madnap、Pauline Herr - Slow Down

周杰伦 - 退后

汐音社、浮生梦 - 探窗

告五人 - 带我去找夜生活

尹昔眠 - 三拜红尘凉

程今 - 爱是无畏的冒险

侯泽润 - 一无所有的年纪

S.H.E - Super Star

周杰伦 - 搁浅

张芸京 - 偏爱

周杰伦 - 夜曲

任夏 - 爱的惩罚

柯柯柯啊 - 姑娘在远方

苏晗 - 最后一页

林俊杰 - 修炼爱情

黄绮珊、希林娜依高 - 是妈妈是女儿

BY2 - 我知道

张碧晨、王赫野 - 字字句句 (Live)

赵雷 - 我们的时光

Hedley - Lose Control (Explicit)

林俊杰 - 江南

那奇沃夫、KKECHO - 苦咖啡·唯一

容祖儿 - 就让这大雨全都落下

韩帅(HS) - 遇星

Henry Young、Ashley Alisha - One More Last Time

张叶蕾 - 还是分开

葛东琪 - 悬溺

街道办GDC、欧阳耀莹 - 春娇与志明

melo-D - Just Say Hello

BEYOND - 光辉岁月

印子月 - 落空

柯子颜 - 听悲伤的情歌

花玲、喵酱油、宴宁、Kinsen - 让风告诉你

Capper、罗言RollFlash - 雪 Distance

Glichery - Sea Of Problems (Explicit)

阿梨粤 - 晚风心里吹

林俊杰 - 美人鱼

邵帅 - 暖一杯茶

G.E.M. 邓紫棋 - 倒数

张韶涵、王赫野 - 篇章

崔子格 - 卜卦

侯泽润 - 惩罚与奖励

林俊杰 - 可惜没如果

G.E.M. 邓紫棋 - 桃花诺

萧亚轩 - 遗失的心跳

阿桑 - 一直很安静

當山みれい - 願い〜あの頃のキミへ〜 (祈愿~致那个时候的你~)

林俊杰 - Always Online

陈绮贞 - 还是会寂寞

周杰伦 - 半岛铁盒

汪苏泷、Jessica - 哎呀 (Live)

林俊杰 - 背对背拥抱

Zyboy忠宇 - 妈妈的话

周杰伦 - 轨迹

福禄寿FloruitShow - 我用什么把你留住 (Live)

周杰伦 - 枫

梦然 - 是你

薛之谦 - 天外来物

蔡健雅 - 越来越不懂

于冬然 - 听说你

王子健 - 循迹

林俊杰 - 裂缝中的阳光

周杰伦、张惠妹 - 不该

Pixxie、Zom Marie - ไม่ได้ก็ไม่เอา (Whatever)

萧敬腾、张淇 - 武家坡2021 (Live)

告五人 - 唯一

程响 - 人间烟火

李荣浩 - 李白

戚薇 - 如果爱忘了

G.E.M. 邓紫棋 - 再见

EXO - Baby, Don't Cry (人鱼的眼泪)

侯泽润 - 借口

Professor Green - In The Shadow Of The Sun

平生不晚 - 难却

郭顶 - 水星记

周杰伦 - 烟花易冷

浩然H.R - 年少的你啊

蔡徐坤 - Hug me

Meg Myers - Running Up That Hill

Max Elto - Shadow Of The Sun

蓝心羽 - 寂寞烟火

林俊杰 - 曹操

家家 - 命运

周杰伦 - 你听得到

周杰伦 - 告白气球

一只白羊 - 赐我

周传雄 - 黄昏

Dion Timmer、The Arcturians - The Best Of Me

林俊杰 - 浪漫血液

弦子、小乐哥(王唯乐) - 不甘 (Live)

林俊杰 - 将故事写成我们

青鸟飞鱼 - 此生不换

五月天 - 步步

LBI利比 - 小城夏天

吉克隽逸、于文文 - 你要的全拿走 (Live)

威仔、格子兮 - 我知道你不爱我

周杰伦 - 不能说的秘密

JVKE - golden hour

王力宏 - 我们的歌

半吨兄弟、张茜 - 乌兰巴托的夜

周林枫、L(桃籽) - 只为碎银几两

曲婉婷 - 我的歌声里

任夏 - 凭什么

付豪 - 他真的对你好吗

海洋小霞 - 向云端

柯柯柯啊 - 雨过天不晴

杨丞琳 - 雨爱

Daniel Powter - Free Loop

周杰伦 - 等你下课 (with 杨瑞代)

王忻辰、苏星婕 - 清空

丹正母子 - 乌兰巴托的夜

王以太、刘至佳 - 危险派对

KOKIA - ありがとう… (谢谢…)

张杰 - 他不懂

周杰伦 - 暗号

汪苏泷、容祖儿 - 就让这大雨全都落下 (Live)

Tungevaag、Raaban、Richard Smitt - All For Love

蓝心羽 - 阿拉斯加海湾

林俊杰 - 我还想她

Wiz Khalifa、Charlie Puth - See You Again

Öwnboss、SEVEK - Move Your Body (remix:Razihel)

Reynard Silva - The Way I Still Love You

筷子兄弟 - 老男孩

ycccc - 满天星辰不及你

一只白羊 - 吹安静的风

就是南方凯 - 巡光

杨丞琳 - 带我走

陆杰awr - 晚风遇见你

陆杰awr - 32度的晚风

许巍 - 曾经的你

侯泽润 - 下辈子做个狠心人

胡歌 - 忘记时间

200个数据不多不少,如果网页的地址没有特殊的规律,我想可以做一个列表,或者放在一个文件里,同样使用for循环来实现。 


总结

爬虫headers是指在发送请求时,附带的一些信息,用于模拟浏览器行为。常见的headers包括User-Agent、Referer、Cookies等。其中,User-Agent用于标识请求的来源,Referer用于标识请求的来源页面,Cookies用于存储登录状态等信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pandas 笔记:pivot_table 数据透视表

1 基本使用方法 pandas.pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll, observedFalse, sortTrue)2 主要参数 dataDataFramevalues要进行聚合的列index在数据透视表索引&#xff08;index…

flask基本用法小白教程+按钮跳转到指定页面+python和pip安装(后附)

一、flask学习教程&#xff1a; 1.1 基本程序&#xff1a; 大家可以在pycharm中复制如下代码&#xff0c;先感受一下flask的基本用法&#xff1a; 点击链接可进入浏览器查看程序运行的结果&#xff0c;在127.0.0.1:5000后面添上/test1/等设定的文字&#xff0c;可查看不同函…

Python生成exe文件运行出现黑框闪退如何查看运行bug?

cmd进行回车 第一&#xff1a;进入到可执行exe文件目录&#xff0c;如下图所示 第二&#xff1a;输入可执行文件名&#xff0c;然后就会出现报错提示

(转载)BP神经网络的非线性系统建模(matlab实现)

1案例背景 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模。在这种情况下,可以建立BP神经网络表达这些非线性系统。方法把未知系统看成是一个黑箱,首先用系统输入输出数据训练BP神经网络,使网络能够表达该未知函数,然后用训练好的 B…

【外卖系统】环境的搭建

搭建数据库 1.创建数据库&#xff0c;名字叫reiggie 2.导入数据库 创建Maven项目 1.创建项目 2.检查项目新建的是否有问题 3.导入pom.xml文件 4.导入application.yml文件 在从gittee上down的代码的基础上&#xff0c;修改一下端口号&#xff0c;数据库的名称什么的 …

(数组与矩阵) 剑指 Offer 29. 顺时针打印矩阵 ——【Leetcode每日一题】

❓ 剑指 Offer 29. 顺时针打印矩阵 难度&#xff1a;简单 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输…

DP转HDMI方案芯片-CS5218/CS5263/CS5363/CS5463详细参数对比说明

CS5218/CS5263/CS5363/CS5463都可用于设计DP转HDMI转接线方案&#xff0c;但几者间不管封装还是功能参数都有差异&#xff0c;如下介绍对比下&#xff1a; CS5218 DP to HDMI(4K30HZ) &#xff0c;CS5218管脚定义参数说明和设计电路图&#xff1a; ​ ​ CS5263 DP to HDMI 4…

Kubernetes_1.27.3_Harbor结合Nacos实战

Nacos 实战 作者:行癫(盗版必究) 一:Nacos简介 1.简介 ​ Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台;Nacos 致力于帮助您发现、配置和管理微服务;Nacos 提供了一组简单易用的特…

计讯物联5G千兆网关TG463在电力智能巡检机器人的应用功能解析

项目背景 随着国家智能电网建设加速推进&#xff0c;投资规模持续扩大&#xff0c;我国电网智能化、信息化不断提高&#xff0c;传统的电力运维与管理模式早已不能满足智能电网快速发展的需求。因此&#xff0c;在5G无线通信、人工智能、物联网、云计算、大数据、电力等前沿技术…

Error: The client is unauthorized due to authentication failure.解决办法

进入到neo4j的安装目录 修改neo4j.conf配置文件 把红框的注释#去掉保存后&#xff0c;重新运行neo4j,问题解决

【Python统计与数据分析实战_01】位置与分散程度的度量

数据描述性分析 1.描述统计量1.1 位置与分散程度的度量1.1.1 例子一 单维数组1.1.2 例子二 多维数组 1.2 关系度量1.3 分布形状的度量1.3.1 统计量&#xff1a;偏度和峰度 1.4 数据特性的总括 1.描述统计量 数据的统计分析分为统计描述和统计推断两部分。前者通过绘制统计图、…

Vue3.0的设计目标是什么?做了哪些优化?

一、设计目标 不以解决实际业务痛点的更新都是耍流氓,下面我们来列举一下Vue3之前我们或许会面临的问题 随着功能的增长,复杂组件的代码变得越来越难以维护 缺少一种比较「干净」的在多个组件之间提取和复用逻辑的机制 类型推断不够友好 bundle的时间太久了 而 Vue3 经过长达…

RuoYi-Vue/vue项目访问 webpack 中定义的变量

前言 RuoYi-Vue 3.8.4 webpack 中定义的变量 vue.config.js 中定义的 webpack 的变量 在html页面中&#xff0c;如何访问 webpack 的变量 <title><% webpackConfig.name %></title>参考&#xff1a;ruoyi-ui/public/index.html 文件

【分布式训练】基于Pytorch的分布式数据并行训练

基于Pytorch的分布式数据并行训练 动机为什么要并行分布数据&#xff1f;现有资料的不足 Outline整体框架图带解释的最小demo示例没有multiprocessing开启multiprocessing 分布式训练启动方式混合精度训练&#xff08;采用apex&#xff09; 参考资料 简介&#xff1a; 在PyTorc…

一则 MySQL 参数设置不当导致复制中断的故障案例

本文分享了一个数据库参数错误配置导致复制中断的问题&#xff0c;以及对参数配置的建议。 作者&#xff1a;秦福朗 爱可生 DBA 团队成员&#xff0c;负责项目日常问题处理及公司平台问题排查。热爱互联网&#xff0c;会摄影、懂厨艺&#xff0c;不会厨艺的 DBA 不是好司机&…

Linux学习之运算符

是赋值运算符&#xff0c;可以把一个变量设置上特定的值&#xff0c;而算术运算符就包括加减乘除&#xff08;、-、*、/&#xff09;&#xff0c;需要使用expr这个命令进行运算。 expr 5 7可以计算出来5与7的和&#xff0c;使用echo $?可以看到expr 5 7这个命令的返回值是0&…

神经网络正则化之BN/LN/GN的原理

1. BN层原理 torch.nn.BatchNorm2d(num_features, eps1e-05, momentum0.1, affineTrue, track_running_statsTrue,deviceNone,dtypeNone) 为什么用BN? 加速训练。之前训练慢是因为在训练过程中&#xff0c;整体分布逐渐往非线性函数的取值区间的上下限端靠近(参考sigmoid函数…

10.6.5 【Linux】分区命令: split

如果你有文件太大&#xff0c;导致一些携带式设备无法复制的问题&#xff0c;split可以将一个大文件&#xff0c;依据文件大小或行数来分区&#xff0c;可以将大文件分区成为小文件&#xff0c;快速有效。 将文件分区的话&#xff0c;使用-b size来将一个分区的文件限制其大小&…

软件测试岗位之我所思我所见

从业以来&#xff0c;见过很多人&#xff0c;看过很多事。唯独“测试”我觉得是我自己选的路。所以现在这个时间点&#xff0c;我想分享下我对测试的看法&#xff1a; 1、测试 &#xff1a;“轻松” “劳累” 作为一个测试&#xff0c;你可以轻松的没有下限&#xff0c;也可…

重写equals为什么要重写hashCode(配合源码分析)

目录 一、hashCode的概念 二、为什么要有hashCode 三、为什么重写equals要重写hashCode 四、HashSet源码分析 五、容易记混的点 一、hashCode的概念 hashCode()是Object定义的方法&#xff0c;它将返回一个整型值&#xff0c;这个方法通常用来将对象的内存地址转换为整数之…