Python《爬取手机和桌面壁纸》

news/2025/1/16 5:54:51/

此次爬取壁纸网站,此网站全是静态的,没有反爬虫手段,感觉是适合新手练手。
http://www.win4000.com/mobile.html
http://www.win4000.com/wallpaper.html
分别是手机壁纸和桌面壁纸。
比如点开手机壁纸,我们会发现有很多标签。
在这里插入图片描述

点开其中的标签,进入到该标签页。
在这里插入图片描述

发现有很多的图片组,且包含有分页。
在这里插入图片描述

再最后点击某个图片组可以发现有多张高清壁纸
在这里插入图片描述
在这里插入图片描述

一个组图中,html页面的url是有规律的。
http://www.win4000.com/mobile_detail_178569_1.html
http://www.win4000.com/mobile_detail_178569_2.html
http://www.win4000.com/mobile_detail_178569_3.html
http://www.win4000.com/mobile_detail_178569_4.html
………

好了,页面分析完毕。直接整代码:

import time
from concurrent.futures import ThreadPoolExecutor
import time
import os
import re
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import  Optionsrootrurl = 'http://www.win4000.com/'
save_dir = 'D:/estimages/'headers = {"Referer": rootrurl,'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",'Accept-Language': 'en-US,en;q=0.8','Cache-Control': 'max-age=0','Connection': 'keep-alive'
}  ###设置请求的头部,伪装成浏览器def saveOneImg(dir, img_url):new_headers = {"Referer": img_url,'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",'Accept-Language': 'en-US,en;q=0.8','Cache-Control': 'max-age=0','Connection': 'keep-alive'}  ###设置请求的头部,伪装成浏览器,实时换成新的 header 是为了防止403 http code问题,防止反盗链,try:img = requests.get(img_url, headers=new_headers)  # 请求图片的实际URLif (str(img).find('200') > 1):with open('{}/{}.jpg'.format(dir, img_url.split('/')[-1].split('?')[0]), 'wb') as jpg:  # 请求图片并写进去到本地文件jpg.write(img.content)print(img_url)jpg.close()return Trueelse:return Falseexcept Exception as e:print('exception occurs: ' + img_url)print(e)return Falsedef processOnePage(tag, url):print('current group page is: %s' % url)html = BeautifulSoup(requests.get(url).text, features="html.parser")div = html.find('div', {'class': 'ptitle'})title = div.find('h1').get_text()num = int(div.find('em').get_text())tmpDir = '{}{}'.format(tag, title)if not os.path.exists(tmpDir):os.makedirs(tmpDir)for i in range(1, (num + 1)):tmpurl = '{}_{}{}'.format(url[:-5], i, '.html')html = BeautifulSoup(requests.get(tmpurl).text, features="html.parser")saveOneImg(tmpDir, html.find('img', {'class': 'pic-large'}).get('src'))passdef processPages(tag, a_s):for a in a_s:processOnePage(tag, a.get('href'))time.sleep(1)passdef tagSpiders(tag, url):while 1:html = BeautifulSoup(requests.get(url).text, features="html.parser")a_s = html.find('div', {'class': 'tab_box'}).find_all('a')processPages(tag, a_s)next = html.find('a', {'class': 'next'})if next is None:breakurl = next.get('href')time.sleep(1)passdef getAllTags(taglist):list = {}for tag, url in taglist.items():html = BeautifulSoup(requests.get(url).text, features="html.parser")tags = html.find('div', {'class': 'cont1'}).find_all('a')[1:]for a in tags:list['{}{}/{}/'.format(save_dir, tag, a.get_text())] = a.get('href')return listif __name__ == '__main__':# 获得所有标签list = {'手机壁纸': 'http://www.win4000.com/mobile.html','桌面壁纸': 'http://www.win4000.com/wallpaper.html'}taglist = getAllTags(list)print(taglist)## 给每个标签配备一个线程with ThreadPoolExecutor(max_workers=40) as t:  # 创建一个最大容纳数量为20的线程池for tag, url in taglist.items():t.submit(tagSpiders, tag, url)# 单个连接测试下下# tagSpiders('D:/estimages/手机壁纸/美女/', 'http://www.win4000.com/mobile_2340_0_0_1.html')# 等待所有线程都完成。while 1:print('-------------------')time.sleep(1)

效果如下:

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述


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

相关文章

【Python实战】美哭你的极品壁纸推荐|1800+壁纸自动换?美女动漫随心选(高清无码)

前言 哈喽,各位小伙伴们,你们好!(*๓╰╯๓) 没关注?伸出手指点这里--- 自从在写爬虫系列的文章后,有小伙伴在后台留言问:栗子有能不能爬一批二次元好看的高颜 值小姐姐、cosplay等壁纸图片分享一下。 所…

美女图片桌面高清壁纸1280*800

图片来自互联网收录-龙铭洪 如果对大家有什么版权,本人一不负责.

ubuntu16.04自动切换桌面壁纸

一、描述 让办公电脑桌面自动更换壁纸是一个很常见的需求,虽然不少这方面的小软件可以实现这个功能。事实上,在基于Gnome的桌面系统中,我们可以不需要借助任何第三方软件的帮助来让我们的桌面自动更换壁纸。本文的方法适用于基于Gnome的Linux…

让 Ubuntu 桌面自动更换壁纸

让 Ubuntu 桌面自动更换壁纸 Posted on 2016-07-10 22:56 京山游侠 阅读( 4256) 评论( 10) 编辑 收藏 引言 让我们的桌面系统自动更换壁纸是一个很常见的美化需求,而且确实也存在着不少这方面的小软件可以实现这个功能。事实上,在基于 Gnome 的桌面系统中…

时尚达人必备的潮流壁纸桌面!

找寻壁纸、桌面壁纸的好去处--高图网。非常好用,特别是对视觉品质有要求的壁纸控来说, 这些网站就特别好了,4K--8K图片也不占少数,提供各种分辨率的美女、风景、动漫、汽车 壁纸等等,所以推荐给大家。 用户可以按照…

Python爬虫入门案例教学:批量爬取彼岸桌面4K超清美女壁纸

先图片开路 环境介绍 python 3.6 / 3.8pycharm 编辑器requestsparselos 文件操作 在cmd里面就可以进行安装 pip install requests 无论是爬取那个网站 什么数据 都是可以按照这个流程去分析 一. 数据来源分析 1. 确定爬取的东西? 网址: 彼岸壁纸 网站数据: 壁纸图片 2. …

【网站】八大极品桌面壁纸网站,惊艳

hello大家好!今天给大家分享8个我最喜欢的网站——电脑桌面壁纸网站。这8个网站可真的是小编精挑细选出来并且自用已久的世间极品,任何一个都可以惊艳到你,如果大家跟我一样喜欢这些网站的话,记得将其收进自己的收藏夹里哦! 8个极…

python3超简代码爬取桌面壁纸

我们要爬取的是彼岸壁纸,官网是http://www.netbian.com/,不说了,上代码: for j in range(100, 120):#想爬取更多修改100 和 120数值url "http://www.netbian.com/desk/20" str(j) "-1920x1080.htm"respons…