Python爬虫爬取-爬取某个网页的精美壁纸

news/2024/11/29 5:48:16/

前言:学了python爬虫,那必须搞点好的!

先导入需要用到的库

import requests
from  bs4 import BeautifulSoup
import time

1.针对图片网,先去源代码里面,找它的网址。

我是用的wallhaven网站的网址

然后得到了一个网址:

# 待爬取网址
url = r'https://wallhaven.cc/toplist'

在字符串前面加‘r’是用于不与‘/’冲突,毕竟很多制表符都和这个有关,这个‘r’可以规避这个问题

2.用requests去获得网页的源代码

fp= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.2.2.2.2.2"//用自己的就行
}
resp = requests.get(url,headers=fp)

这里的fp是反爬措施。因为我尝试了直接获取源代码,是不行的,网页服务器会拒绝你的请求,所以我们要伪装一下,这个"User-Agent"就是模拟一个真实用户,让服务器以为你是正常浏览网页而不是一个程序。"User-Agent"可以从浏览器右键检查中,网络抓包工具里,预览选项中请求的数据中得到。

3.调用漂亮的汤 BeautifulSoup,去获取一个包

page = BeautifulSoup(resp.text,"html.parser")

用的是"html.parser"模式

4.将主页面源代码进行筛选,只获得其中的图片链接,且建立两个列表存放链接

# 缩小范围到<a>标签
jpglist = page.findAll("a",class_="preview")
#只用href链接
jpglistbox = []
childjbglistbox = []
for i in jpglist: # 在获取的所有链接循环导出至jpg链接列表jpglistbox.append(i.get('href'))

5.在的到的所有的图片链接里面循环获取源代码,打开子链接然后从中提取主要的高清大图下载

//用于验证前面的链接是否加载完毕
print(jpglistbox)
for a in jpglistbox:child_resp = requests.get(a,headers=fp)child_resp_text = child_resp.textchild_page = BeautifulSoup(child_resp_text,"html.parser")div = child_page.find("div",class_="scrollbox")img = div.find('img')src = img.get('src')#下载图片img_resp = requests.get(src)img_name = src.split("/")[-1]//建立文件夹with open (img_name,mode = "wb") as f:f.write(img_resp.content)、//提示文本print("ok!",img_name)//间隔一秒,防止网站碰壁time.sleep(1)
print("全部下载完成!")

这里是运行后的结果

 一个非常简单的控制台爬虫程序就做好了!

其实原理很简单,就是去获取网页的源代码,去提取它当前页面的图片超链接,添加到创建的list里,然后再从这个list里面遍历,循环打开超链接获取子页面代码,从子页面代码里面提取高清图的url,然后保存下载。

仅供学习,侵权联系,立马删除


http://www.ppmy.cn/news/246588.html

相关文章

vs code设置精美壁纸(已成功)

啊&#xff01;我先展示一下效果嗷&#xff01;&#xff01;&#xff01; 图片是在另外一个博客找的&#xff0c;当然在知乎上搜索壁纸有一大堆嗷&#xff01; 小伙伴快来设置&#xff01; emmm,没有原来的图片了&#xff0c;只能让你们看一下带着我加的文字的图片对比一下&am…

python唯美壁纸_营造一个好的编码心情-python抓取mac精美壁纸

如图&#xff0c;一个好的工作环境&#xff0c;可以让心情好不少 抓取的是爱壁纸的资源&#xff0c;它们最多只提供20页一个类别&#xff0c;但是一页有60张。 总共有11个类别&#xff0c;就是有20x60x11张。我这里只筛选了2种类别&#xff0c;看你需要了。 话不多说&#xff0…

如何利用 Python 爬取 LOL 高清精美壁纸?

作者 | 阿拉斯加 来源 | 杰哥的IT之旅 一、背景介绍 随着移动端的普及出现了很多的移动 APP&#xff0c;应用软件也随之流行起来。最近看到英雄联盟的手游上线了&#xff0c;感觉还行&#xff0c;PC 端英雄联盟可谓是爆火的游戏&#xff0c;不知道移动端的英雄联盟前途如何&…

如何导出Windows聚焦的精美壁纸

如何导出Windows聚焦的精美壁纸 文章目录 如何导出Windows聚焦的精美壁纸1、什么是windows聚焦2、导出windows聚焦壁纸 1、什么是windows聚焦 你可以把「Windows 聚焦」这个功能理解为微软为 Windows 10 内置的「锁屏壁纸自动换」功能&#xff0c;开启这个功能后 Windows 10 会…

python 日历壁纸_Excel+Python=精美壁纸日历 任意DIY

广东的太阳还是那么大&#xff0c;隔着玻璃都能感受到热浪。 明明前不久才立夏(明明已经过去三个月!!) 时间跑&#xff0c;日程赶。 昨日又迎来了立秋&#xff0c;正在放暑假的童靴是不是有点忘记时间了呢~ 什么&#xff1f;真的忘记了&#xff1f;没关系&#xff0c;今日小编为…

记一次binlog恢复Mysql某张表数据的过程

1、备份数据库&#xff0c;非常重要 2、要用户不能操作&#xff08;如果不能停止&#xff0c;可以新建一个库&#xff0c;所有的binlog执行操作在新库执行&#xff09;。 3、登录服务器&#xff1b; 4、获取Mysql数据路径 cat /etc/my.cnf.d/mysql-server.cnf5、进入当前目录…

python唯美壁纸_用Python下载momentum中的精美壁纸

#! /usr/bin/python # encodingutf-8 """ desc 下载momentum中的精美壁纸 api https://d3cbihxaqsuq0s.cloudfront.net/ author Tan """ import requests import re import os import urllib import xml.dom.minidom def download(…

必应精美壁纸一键全部下载

【下载地址】https://pan.baidu.com/s/1Sl654wTlLegVVNWU2Yh6gQ 【使用说明】下载解压后&#xff0c;双击download.bat&#xff0c;等待即可&#xff0c;结束后cmd窗口会自动关闭&#xff0c;有相关问题欢迎打扰。 现在电脑已经离不开我们日常的学习和工作了&#xff0c;尤其是…