一行Python代码一句注释,大量美女套图等萌新来战!

效果展示:

此模板主要用于多线程套图下载,不过一般大众爬虫不用破译的都可以改改使用,附件有个美图录的例子。

每个用途 每个网址 细节都会有差异 所有带(*)的都属于DIY范畴,需要一些基本的html知识,请灵活使用。

添加了断点续传功能,文件夹名称改为套图地址;

每一句Python源代码后面都有详细注释:

import requests ##参考h踢踢批://docs点python-requests.org/zh_CN/latest/user/quickstart点html
from bs4 import BeautifulSoup ##参考h踢踢批
://beautifulsoup点readthedocs.io/zh_CN/v4.4.0/#id55
import os ##本地写入数据
import urllib.request ##有时直接打开图片地址会显示403 Forbidden,只有先打开相关网页再打开图片才能正常显示,所以我就先打开一下网页,可省略
import re ##正则表达式,用于匹配格式
from multiprocessing import Pool ##多线程

headers = {‘User-Agent‘:"Mozilla/5.0", "Referer": "图库主页"} ##浏览器请求头,有时python直接获取图片时防盗链会踢出,所以我们假装是在用浏览器

def run(url): ##(*)传入图片某分类网页的url

 start_html = requests.get(url, headers=headers) ##request该url的html文件
 Soup = BeautifulSoup(start_html.text, ‘lxml‘) ##使用BeautifulSoup来解析我们获取到的网页(‘lxml’是指定的解析器 具体请参考官方文档哦)
 all_a = Soup.find(‘div‘, class_=‘主体的class名称‘).find_all(‘a‘) ##(*)查找该网页上主体的所有图片

 path = url.split(‘/‘)[-2] ##(*)网址的最后一个/之前一般是这一类的总称,可作为文件夹名
 if not os.path.exists("存储总目录" + "/" + path): ##如果没有这个文件夹的话,创造并进入
 os.makedirs("存储总目录" + "/" + path) ##创建一个存放的文件夹
 os.chdir("存储总目录" + "/" + path) ##切换到上面创建的文件夹

 for a in all_a:

 href = a["href"] ##(*) 获取套图网页的url,可省略
 elem = a.img[‘src‘] ##(*) 获取本图片地址
 folder = elem.split(‘/‘)[-2] ##(*) 获取该套图的名称

 length = a.next_sibling.next_sibling.get_text()
 max_span = int(length[-17:-14]) ##(*) 找到该套图的网页一共有多少页

 html = requests.get(href, headers=headers, allow_redirects=False) ##访问套图网页,并阻止重定向(也是防盗链的一种)
 u = urllib.request.urlopen(href) ##真的打开这个网页,可省略

 for page in range(1, max_span + 1):

 page_url = elem[:-5] + str(page) + ".jpg" ##(*) 图片地址格式,需要自己探索
 print(page_url) ##(*) 打印一下图片地址,可省略

 img_html = requests.get(page_url, headers=headers, allow_redirects=False) ##访问图片地址
 name = folder + ‘-‘ + str(page) ##(*) 图片名格式,套图名称+第几张图

 f = open(name+‘.jpg‘, ‘ab‘) ##写入这个图片
 f.write(img_html.content) ##多媒体文件要用.content写
 f.close()

urls = {‘url1‘, ‘url2‘,‘url3‘} ##这就是各分类的url

pool = Pool(30) ##线程数
for url in urls:
 pool.apply_async(run, args=(url))

pool.close()
pool.join()
print(‘所有图片已下完‘)

原文地址:https://www.cnblogs.com/kongshouyisuiyue/p/9607109.html

时间: 2024-10-12 12:04:06

一行Python代码一句注释,大量美女套图等萌新来战!的相关文章

一行python代码实现树结构

树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题中所说的那样,用一行Python代码就可以实现吗? 一行代码实现? 由于树形结构的外层和内层有着相似的结构,所以多可以用递归的方式定义树.再利用Python中提供的defaultdict,我们就可以很轻松地定义树了,而且只有一行代码. from collections import defaultd

一行python代码

Life is short, just use Python. 自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl 和Shell编程,因为python 的优雅么? 不全是,主要是可以高效开发吧. 那一行代码可以干什么呢? 有趣 我孩子的英文名叫andy,也许当初教他写程序的时候,如果先秀一下这行代码,可能就更能激起他对代码的兴趣了. >>> print'\n'.join([''.join([('AndyLove'[(x-y)%8]if((x*0.05)**2

一行 Python 代码实现并行,骚技能,Get!

Python 在程序并行化方面多少有些声名狼藉.撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题.常见的经典 Python 多线程.多进程教程多显得偏"重".而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容. 传统的例子 简单搜索下"Python 多线程教程",不难发现几乎所有的教程都给出涉及类和队列的例子: import os import PIL from multiprocessing import Pool from PIL

[Python] 代码中有中文注释会报错

原因 如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明. 解决方法 在第一行或是第二行加入这么一句# -- coding: utf-8 -- ASCII知识普及: ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言.由128个字符组成,包括大小写字母.数字0-9.标点符号.非打印字符(换行符.制表符等4个)以及控制字符(退格.响铃

一行 Python 代码实现三分彩网站搭建并行

Python 在程序并行化方面多少有些声名狼藉.三分彩网站搭建[企鹅21717-93408]撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题.常见的经典 Python 多线程.多进程教程多显得偏"重".而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容.我并不是说使用生产者/消费者模型处理多线程/多进程任务是错误的(事实上,这一模型自有其用武之地).只是,处理日常脚本任务时我们可以使用更有效率的模型. Python学习群:556370268,这里是pyth

python基础===一行 Python 代码实现并行(转)

原文:https://medium.com/building-things-on-the-internet/40e9b2b36148 译文:https://segmentfault.com/a/1190000000414339 #from multiprocessing import Pool from multiprocessing.dummy import Pool as ThreadPool import requests urls = [ 'http://www.python.org',

一行Python代码——单词逆转

Question Given an input string, reverse the string word by word. For example, Given s = "the sky is blue", return "blue is sky the". Answer def reverseWords(s): return ' '.join(filter(lambda x:x != '', s.split(' '))[::-1]) 详解: s.split(

python cookies提取——从字符串到字典(一行Python代码)

def extract_cookies(cookie): """从浏览器或者request headers中拿到cookie字符串,提取为字典格式的cookies""" cookies = dict([l.split("=", 1) for l in cookie.split("; ")]) return cookies if __name__ == "__main__": cookie

Python代码是编译执行还是解释执行?

转载地址:http://blog.csdn.net/zv3e189os5c0tsknrbcl/article/details/78661641 有人在讨论 Python 代码是编译执行还是解释执行?这个问题还可以换一种说法: Python 是编译型语言还是解释型语言?回答这个问题前,我们先弄清楚什么是编译型语言,什么是解释型语言. 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译.不过它是针对特定CPU体系的,这些目标代码只能在特定