【酱浦菌-爬虫项目】python爬取彼岸桌面壁纸

embedded/2024/12/23 1:10:17/
  1. 首先,代码导入了两个库:requestsparsel。这些库用于处理HTTP请求和解析HTML内容。

  2. 然后,它定义了一个变量url,指向网站’樱花2024年4月日历风景桌面壁纸_高清2024年4月日历壁纸_彼岸桌面’。

  3. 接下来,设置了一个HTTP请求的头部信息,模拟了一个Chrome浏览器的请求。

  4. 通过requests.get()方法,发送一个GET请求到指定的URL,并将响应内容保存在response变量中。

  5. 使用response.apparent_encoding来设置响应的编码方式。

  6. 创建一个parsel.Selector对象,用于解析HTML内容。

  7. 从HTML中选择所有<li>元素,这些元素包含了图片的信息。

  8. 遍历每个

     <li>

    元素:

    • 提取<b>标签内的文本作为图片的标题。

    • 如果存在标题,提取<img>标签的src属性,即图片的URL。

    • 使用requests.get()方法获取图片的内容。

    • 将图片内容写入到以标题命名的文件中(保存在img文件夹下)。

    • 打印图片的URL和标题。

  9. 最后,输出一条消息表示下载完成。

完整代码如下:

python">#http://www.netbian.com/desk/33413.htm
import requests
import parsel
url = 'http://www.netbian.com/desk/33413.htm'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
response.encoding = response.apparent_encoding
selector = parsel.Selector(response.text)
lis = selector.css('.list li')
print('====================')
print('开始下载:')
for li in lis:title = li.css('b::text').get()if title:li_url = li.css('img::attr(src)').get()img_content = requests.get(url = li_url).contentwith open('img\\' + title + '.jpg', mode = 'wb') as f:f.write(img_content)print(li_url, title)
print('下载完成!')
print('====================')

运行效果如下:


http://www.ppmy.cn/embedded/25479.html

相关文章

day15 学一下Tailwindcss(java转ts全栈/3r教室)

目前距离全栈差得最多的是前端&#xff0c;而对于前端主要是CSS一直不熟悉&#xff0c;觉得很复杂写起来总是不上道&#xff0c;所以特别关注下Tailwindcss吧&#xff0c;其他前端框架可以先放放&#xff0c;多说无益直接用tailwindcss做个页面试试 看下文档&#xff1a;Tailwi…

TiDB 利用binlog 恢复-反解析binlog

我们知道TiDB的binlog记录了所有已经执行成功的dml语句&#xff0c;类似mysql binlog row模式 &#xff0c;TiDB官方也提供了reparo可以进行解析binlog&#xff0c;如下所示: [2024/04/26 20:58:02.136 08:00] [INFO] [config.go:153] ["Parsed start TSO"] [ts449…

13.Blender 界面介绍(下) 雕刻、纹理绘制及属性

界面介绍 1. 布局 物体的移动旋转和缩放等操作 2. 建模 里面就是有一些建模常用的功能 里面的功能对于做MMD来说不是必备的操作 3. 雕刻 使用里面的工具可以对物体本身进行修改 4. UV编辑 如果想要编辑UV贴图 将编辑模式改为纹理绘制 再点击右边的工具 如果进行编…

python学习笔记----数据容器(六)

一、数据容器的入门 python中的数据容器&#xff1a;一种可以容纳多份数据的数据类型&#xff0c;容纳的每一份数据称之为1个元素。每一个元素&#xff0c;可以是任意类型的数据&#xff0c;如字符串、数字、布尔等。 数据容器根据特点的不同&#xff0c;如&#xff1a; 是否…

wireshark RTP分析参数

主要看丢弃和Delta&#xff0c; 丢弃就是丢掉的udp包&#xff0c;所占的比率 Delta是当前udp包接收到的时间减去上一个udp包接收到的时间 根据载荷可以知道正确的delta应该是多少&#xff0c;比如G711A&#xff0c;ptime20&#xff0c;那么delta理论上应该趋近于20. 这里的de…

ansible-playbook离线升级centos内核

目录 概述实践ansible目录结构关键代码执行效果 结束 概述 内核离线包官网下载地址如下&#xff1a; 地址 实践 ansible目录结构 如对 ansible 不熟悉&#xff0c;离线包下载有问题&#xff0c;请至此地址下载&#xff0c;按本文操作可直接使用。 相关文章链接如下 文章地…

Java基础:设计模式之建造者模式

建造者模式是一种创建型设计模式&#xff0c;其主要目的是将一个复杂对象的构建过程与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式适用于创建那些包含多个组成部分、各部分之间有复杂的装配关系、且构造过程可能需要逐步进行或允许用户选择不同组…

LinkedList与链表

文章目录 ArrayList的缺陷链表链表的概念及结构链表的实现 LinkedList的使用什么是LinkedListLinkedList具体使用 ArrayList和LinkedList的区别 ArrayList的缺陷 通过源码知道&#xff0c;ArrayList底层使用数组来存储元素 由于其底层是一段连续空间&#xff0c;当在ArrayList任…