python爬去壁纸网站上的所有壁纸
import requests as r 2 from bs4 import BeautifulSoup
3 import os
4 base_url = "http://www.win4000.com"#站点
5 theme_base_url = "http://www.win4000.com/zt/xiaoqingxin_"
6 #利用列表解析快速生成每页链接列表
7 theme_url_list = [theme_base_url + str(x) + ".html" for x i n range(1,6)]
8
9 #套图链接列表
10 series_url_list = []
11 #获取所有套图链接列表
12 #UA伪装
13 headers = {
14 "User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linux x8 6_64; rv:80.0) Gecko/20100101 Firefox/80.0"
15
16 }
17 def get_series_url_lists(url,headers):
18 resp = r.get(url,headers)
19 if resp is not None:
20 result = resp.text
21 bs = BeautifulSoup(result,"html.parser")
22 ul = bs.find("div",attrs = {"class":"tab_tj"})
23 a_s = ul.find_all("a")
24 for a in a_s:
25 series_url_list.append(a.get("href"))
26
27 #保存文件夹名
28 save_root_dir = os.path.join(os.getcwd(),"tmp/")
29 #获取某个套图里的所有图片
30 def fetch_all_series_pic(url,headers):
31 cur_page = 1
32 while True:
33 current_url = url
34 if cur_page>1:
35 current_url = url.relapce(".html",+"_"+str(cur_ page)+".html")
36 resp = r.get(current_url,headers)
#http请求码错误则退出程序
38 if resp.statu_code == 404:
39 break
40 else:
41 if resp is not None:
42 bs = BeautifulSoup(result,"lxml")
43 #使用lxml获取标题,用作文件夹名称
44 title_name = bs.find("div",attrs = {"cl ass":"ptitle"}).h1.text
45 save_dir = os.path.join(save_root_dir,t itle_name)
46 if not os.path.exists(save_dir):
47 os.makedirs(save_dir)
48 #使用CCS选择器选择图片节点
49 imgs = bs.select("img.pic-large")
50 for img in imgs:
51 download_pic(img.attrs.get("src"),s ave_dir)
52 cur_page+=1
53 #下载图片的方法
54 def download_pic(url,path):
55 print("下载图片:" + url)
56 try:
57 #就是通过义/为分割符,形成一个字符串列表并且取列表> 的最后一个元素
58 pic_name = url.split("/")[-1]
59 #.content返回的是二进制文件
60 #.text返回的是Unicode(str)数据
61 #图片为二进制文件
62 img_resp = r.get(url).content
63 with open(path +"/"+pic_name,"wb+") as f:
64 f.write(img_resp)
65 except Exception as reason:
66 print(str(reason)) 68 if __name__ == "__main__":
69 for url in theme_url_list:
70 get_series_url_lists(url,headers)
71 for url in series_url_list:
72 fetch_all_series_pic(url,headers)
73
python爬去壁纸网站上的所有壁纸的更多相关文章
- python爬取某个网站的图片并保存到本地
python爬取某个网站的图片并保存到本地 #coding:utf- import urllib import re import sys reload(sys) sys.setdefaultenco ...
- python爬虫学习-爬取某个网站上的所有图片
最近简单地看了下python爬虫的视频.便自己尝试写了下爬虫操作,计划的是把某一个网站上的美女图全给爬下来,不过经过计算,查不多有好几百G的样子,还是算了.就首先下载一点点先看看. 本次爬虫使用的是p ...
- python爬去电影天堂恐怖片+游戏
1.爬去方式python+selenium 2.工作流程 selenium自动输入,自动爬取,建立文件夹,存入磁力链接到记事本 3.贴上代码 #!/usr/bin/Python# -*- coding ...
- 利用Python爬取电影网站
#!/usr/bin/env python #coding = utf-8 ''' 本爬虫是用来爬取6V电影网站上的电影资源的一个小脚本程序,爬取到的电影链接会通过网页的形式显示出来 ''' impo ...
- Python爬取mn52网站美女图片以及图片防盗链的解决方法
防盗链原理 http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么 因此所有防盗链方法都是基于这个Referer字段 ...
- 用Python爬取斗鱼网站的一个小案例
思路解析: 1.我们需要明确爬取数据的目的:为了按热度查看主播的在线观看人数 2.浏览网页源代码,查看我们需要的数据的定位标签 3.在代码中发送一个http请求,获取到网页返回的html(需要注意的是 ...
- Python爬取招聘网站数据,给学习、求职一点参考
1.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于“数据”方面的人才需求也在不断增大.因此了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?不管是对于 ...
- python爬取招聘网站数据
# -*- coding: utf-8 -*- # 爬虫分析 from bs4 import BeautifulSoup from lxml import etree from selenium im ...
- python爬取视频网站m3u8视频,下载.ts后缀文件,合并成整视频
最近发现一些网站,可以解析各大视频网站的vip.仔细想了想,这也算是爬虫呀,爬的是视频数据. 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 “一出好戏” . 分析页面 我用的是c ...
随机推荐
- Leetcode(869)-重新排序得到 2 的幂
从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零. 如果我们可以通过上述方式得到 2 的幂,返回 true:否则,返回 false. 示例 1: 输入:1 输出 ...
- Python源码剖析——01内建对象
<Python源码剖析>笔记 第一章:对象初识 对象是Python中的核心概念,面向对象中的"类"和"对象"在Python中的概念都为对象,具体分为 ...
- Linux 驱动框架---驱动中的阻塞
描述和API 阻塞IO和非阻塞IO的应用编程时的处理机制是不同的,如果是非阻塞IO在访问资源未就绪时就直接返回-EAGAIN,反之阻塞IO则会使当前用户进程睡眠直到资源可用.从应用场景来说两种方式分别 ...
- Windows中VS code无法查看C++ STL容器的值 - 解决方法
Windows中VS code debug时无法查看C++ STL容器内容 首先,你很可能用的是x64版本的Windows. 我发现一个有效的解决方法,但在x64版本的Windows上安装MinGW时 ...
- jest & code testing
jest jest & code testing https://jestjs.io/zh-Hans/ 24.9 https://jestjs.io/docs/zh-Hans/getting- ...
- css border-radius & yin-yang & taiji
css border-radius & yin-yang & taiji solution css border-radius & tabs effect https://co ...
- qt 向窗口发送消息,键盘输入事件
#include <windows.h> #include <QtDebug> #include <locale> #include <tchar.h> ...
- 使用控制台启动Android设备模拟器
文档 > emulator -list-avds Nexus_5X_API_28_x86 Pixel_2_XL_API_28 > emulator.exe -avd Pixel_2_XL_ ...
- NGK算力市场,不止有动静态收益还有SPC空投!
随着数字货币交易的火热,云算力挖矿也悄然崛起.越来越多的用户开启云算力挖矿,以获取更多的收益.相较于传统的矿机挖矿,用户通过购买算力进行云挖矿,节省了购买矿机以及维护的成本.另一方面,也降低了安全风险 ...
- 边缘计算k8s集群之SuperEdge
什么是边缘计算? 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务.应 ...