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 ...
随机推荐
- JavaScript调试技巧之console.log()
与alert()函数类似,console.log()也可以接受变量并将其与别的字符串进行拼接: 代码如下: //Use variable var name = "Bob"; con ...
- element-ui select get selected option object
element-ui select get selected option object value-key="value" === String :value="{va ...
- hihoCoder Challenge 2
#1046 : K个串 时间限制:40000ms 单点时限:2000ms 内存限制:1024MB 描述 兔子们在玩k个串的游戏.首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计 ...
- 一个汉字在php中占几个字节?
问:一个汉字在php中占几个字节? 答: 对于中文字符,若使用 GBK.Big-5 版本,每个中文字符相当于 2 个字节: 若使用 UTF-8 版本,每个中文字符相当于 3 个字节.
- how to publish a dart package using Github Actions?
how to publish a dart package using Github Actions? dart package flutter package Github Actions publ ...
- LeetCode 二叉树,两个子节点的最近的公共父节点
LeetCode 二叉树,两个子节点的最近的公共父节点 二叉树 Lowest Common Ancestor of a Binary Tree 二叉树的最近公共父亲节点 https://leetcod ...
- nest.js tutorials
nest.js tutorials A progressive Node.js framework https://docs.nestjs.com//firststeps nest.js CLI ht ...
- JavaScript 如何使用 setTimeout 实现 setInterval
JavaScript 如何使用 setTimeout 实现 setInterval website multi content page setIntervalSimulator "use ...
- alipay 小程序 & online IDE & demos
alipay 小程序 & online IDE & demos system-info iOS / Andriod https://opendocs.alipay.com/mini/a ...
- nvidia-smi command not found Ubuntu 16.04
issue: nvidia-smi command not found Ubuntu 16.04 https://askubuntu.com/questions/902636/nvidia-s ...