爬虫获取静态网页数据

news2024/12/24 9:48:36

自动爬取网页数据

正常情况下是我们使用浏览器输入指定url,对服务器发送访问请求,服务器返回请求信息,浏览器进行解析为我们看到的界面,爬虫就是使用python脚本取代正常的浏览器,获取相应服务器的返回请求信息,并配合python强大的库进行解析分析,能够快速高效地帮助我们进行大数据分析。

不需要登录即可返回请求

以爬取虎牙交友频道每个直播封面图片为例

  1. 请求服务器

        url = 'https://www.huya.com/g/4079'
        result = requests.get(url=url).text
    

    其实就是与cmd命令的 curl url一样,他们两个的返回是一样的,都是返回请求网页的源代码

    curl url的返回太长,可以直接保存到文件中,方便比较 curl https://www.huya.com/g/4079 > C:\Users\72403\Desktop\py\cmdRes.txt

  2. 在网站源码内筛选我们需要的数据,这里用到xpath

    我们可以在网站要爬取的内容右键选检查,就会看到对应内容的标签等信息

        data = etree.HTML(result)
        imgs = data.xpath('//img[@class="pic"]')
    
  3. 保存数据

      for img in imgs:
            imgUrl = img.xpath('./@data-original')[0]
            imgName = img.xpath('./@alt')[0]
            request.urlretrieve(imgUrl, r'C:/Users/72403/Pictures/video/huya/' + imgName + '.jpg')
    

都被爬到了本地:

需要登录才可返回请求

有的网站访客请求不能成功返回请求,这里以小b站为例

其他的都是一样的,就是要加上一个cookie,来告诉服务端我不是访客,我是你们尊贵的vip用户,快给我返回请求

获取自己已经登录账户的cookie

  1. 打开小b站,登录

  2. 按下F12进入调试窗口

  3. 选中网络

  4. 按下 alt+r 刷新界面

  5. 滑动到界面的最上方,找到www.bilibili.com这条

    cookie就在图下方所示位置

请求的时候请求头加上cookie

headers = {
    # 假装自己是浏览器
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 			Chrome/73.0.3683.75 Safari/537.36',
    # 把你刚刚拿到的Cookie塞进来
	'Cookie':'把上一步得到的Cookie复制到此处'
}
session = requests.Session()
result = session.get('https://www.bilibili.com', headers=headers).text

完整代码

headers = {
    # 假装自己是浏览器
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 			Chrome/73.0.3683.75 Safari/537.36',
    # 把你刚刚拿到的Cookie塞进来
	'Cookie':'把上一步得到的Cookie复制到此处'
}
if __name__ == '__main__':
    url = 'https://www.bilibili.com'
    session = requests.Session()
    result = session.get('https://www.bilibili.com', headers=headers).text
    #result = requests.get(url=url).text
    data = etree.HTML(result)
    imgs = data.xpath('//img')
    for img in imgs:
        imgUrl = img.xpath('./@src')[0]
        imgName = img.xpath('./@alt')[0]
        print(imgName+":"+imgUrl)
		# 会出现有的图片路径不带https,加下面的判断
        if imgUrl.find("https://") !=-1:
            request.urlretrieve(imgUrl, r'C:/Users/72403/Pictures/video/bilibili/' + imgName + '.jpg')
        else:
            request.urlretrieve("https:"+imgUrl, r'C:/Users/72403/Pictures/video/bilibili/' + imgName + '.jpg')
        print("{%s}下载完毕!" % imgName)

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

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

相关文章

广告牌安全监测系统,用科技护航大型广告牌安全

城市的街头巷尾,处处可见高耸的广告牌,它们以各种形式和颜色吸引着行人的目光。然而,作为城市景观的一部分,广告牌的安全性常常被我们所忽视。广告牌量大面大,由于设计、材料、施工方法的缺陷,加上后期的检…

报错解决: 未能解析此远程名称: ‘raw.githubusercontent.com‘

如果出现类似报错 添加 199.232.68.133 raw.githubusercontent.com 到 C:\Windows\System32\drivers\etc\hosts 的末尾 再尝试执行

【RocketMQ】消息中间件学习笔记

【RocketMQ】消息中间件学习笔记 【一】RocketMQ概述【1】MQ简介【2】MQ永用途(1)限流削峰(2)异步解耦(3)数据收集 【3】RocketMQ 介绍(1)RocketMQ 特点(2)Ro…

如何提升LED显示屏显示效果?

影响LED显示屏显示效果的因素有很多,以下是一些主要的因素: LED灯珠的质量和性能:LED灯珠是LED显示屏的核心组件,其质量和性能会直接影响到整个LED显示屏的显示效果。 显示屏的亮度:LED显示屏的亮度是影响显示效果的一…

Solid框架节点级响应性

前言 随着组件化、响应式、虚拟DOM等技术思想引领着前端开发的潮流,相关的技术框架大行其道,就以目前主流的Vue、React框架来说,它们都基于组件化、响应式、虚拟DOM等技术思想的实现,但是具有不同开发使用方式以及实现原理&#…

霍夫曼编码,计算霍夫曼编码树(数字图像处理大题复习 P7)

文章目录 计算出 x1~x6 的树计算 x1~x6 的编码得出霍夫曼编码 w1~w6 计算出 x1~x6 的树 我们先对 x1~x6 进行排序把最底下的加起来,上面写0 下面写1 然后一层一层加上去,注意加上去以后要 重新排序 计算 x1~x6 的编码 举例,从 x5 出发&…

计算机竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 …

「UG/NX」Block UI 从列表选择部件SelectPartFromList

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

硬实力+软实力!2023功能测试进阶之路!

作为一名游戏功能测试,偶尔和朋友聊起工作,他们会说:“你这个工作好呀,平时玩玩游戏,一边玩一边就把工作做了”;有时为了避免别人这样理解,我干脆说自己是搞游戏开发的,这个时候又有…

微软推出统一 Copilot AI 助手;谷歌拟自主研发 AI 芯片;苹果拟在国内引进新的 OLED 供应商丨RTE开发者日报 Vol.55

开发者朋友们大家好: 这里是「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

「聊设计模式」之 设计模式的前世今生

🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅! 目录: 一、什么是设计模式设计模式的定义设计模式的…

Caddy Web服务器深度解析与对比:Caddy vs. Nginx vs. Apache

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

QT---day2---9.18

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

vue antv g6 编辑器

第一:官方推荐代码 (下载后最好删除eslint(可以用第二个),再进行install) https://github.com/claudewowo/welabx-g6https://download.csdn.net/download/qq_30940855/88343559?spm1001.2014.3001.5501 …

RK3568驱动指南|第五篇 中断-第42章 软中断实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

MySQL数据库的explain关键字之type字段详解

这篇文章主要介绍一下mysql数据库常用的sql优化时使用的explain/desc关键字中,执行结果的type字段的取值。 目录 数据准备 const eq_ref ref range index all type字段的值主要有以下7种:其中system的性能最高,但是很难遇到&#xff0…

Spring实例化源码解析之ConfigurationClassParser(三)

前言 上一章我们分析了ConfigurationClassPostProcessor的postProcessBeanDefinitionRegistry方法的源码逻辑,其中核心逻辑do while中调用parser.parse(candidates)方法,解析candidates中的候选配置类。然后本章我们主要分析ConfigurationClassParser的…

linux服务器部署项目

1.linux安装配置JDK 以Java1.8为例,下载安装包 将安装包提交到服务器中并解压 tar -zxvf your_file.gz 修改/etc/profile文件 vi /etc/profile 文件中添加两条 export JAVA_HOME/path/to/your/java export PATH$JAVA_HOME/bin:$PATH 输入指令刷新文件 source /etc…

Python150题day08

2.基础语法篇 2.1 if 条件句 ①单个条件分支 使用input函数接收用户的输入,如果用户输入的整数是偶数,则使用print函数输出"你输入的整数是:{value],它是偶数”,[value]部分要替换成用户的输入。 解答: value input("请输⼊⼀…

java 阿里云上传照片

获取对象 Resourceprivate ALiYunConfig aLiYunConfig;代码配置类 import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;/*** 描述:** author zhaofeng* date 2023-09-05*/ D…