鱼C论坛

 找回密码
 立即注册
查看: 733|回复: 0

[作品展示] [Python][动漫妹子][小白向]13行代码教你写一个极简爬取壁纸[动漫],不点进来康康?

[复制链接]
发表于 2020-3-29 14:38:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Pythonnewers 于 2020-3-29 14:43 编辑

注意,本文因为只有13行,极简极简,因此没有什么多线程之类的高端设施,但是爬取一些也够。

----------------------------------------------------------------------------
鉴于本人等级不够无法发图,所以想直接看成果的跳到最后~
第一步
import requests
import re
import urllib.request
可能有些看这么多import比较头疼,实际上,re才是主体,用于搜索(不明白后面说~),request就是获得网页。这样的话网址就在这里面,不了解的去个网页,右键,找到检查,点击。就是那个
urllib.request就是获得到网址后下载下来,一句话(毕竟总共才13行.)
html=requests.get('http://pic.netbian.com/')
先获取这个网页,因为这里面有图片地址~要不然在检查那里的窗口点左上角的小鼠标,然后点击图片,你就会发现<img src=网址,这个网址就是图片地址~
html=html.content.decode('gbk')
这个的意思就是将网页源代码解码(就是变成能让人看懂的意思!)有些网站'gbk'不行,改成'utf-8'
F=re.findall('<img.*?src="(.*?)"',html,re.S)
注意注意主体来了,按照第一步你会发现<img src='网址'这个东西,实在不了解百度怎么查看网页元素也行~.*?表示贪婪模式(这个东西我想了好久才想明白,就是跟<img相关的全部找到(官话叫'匹配'))然后(.*?)表示非贪婪模式,(.*?)就是只找到src="网址"这个网址src不找。然后.*?,什么意思?就是正则表达式,如果你跟我一样百度也理解不了的话。就记住,以后就使用它(没错,几乎万能!)
比如啊
注:这里是例子,不要写入!
<img src='www.baidu.com'
抱歉这个东西不咋会写(懒得复制),就是让你明白一下,"src="后面地址,就是图片地址,非贪婪就是只找到www.baidu.com,如果你不加括号,会直接把<img src="www.baidu.com"找到.实在不理解动手试试,动手确实很有用
x=1
这个后面有,就是设置个变量,看后面代码就能明白~
for i in F:
    i=('http://pic.netbian.com'+i)
    urllib.request.urlretrieve(i,str(x)+'.jpg')
for 循环,因为F这个你要是print出来发现是一堆网址的列表,例如["www.baidu.com","www.news.baidu.com"] ,for 就是单个拿出来,迭代器.
然后i=的那句话是因为你会发现你弄出来的F不完整,不是可以打开的。至于加什么,你就随便点一个图片,看看它的网址和你列表里的网址对比,看缺啥补啥
最后一条urllib就是将你弄好的(例)www.baidu.com下载到本地,相同文件夹,但是可以加路径,我没加,上网搜这行代码的详解一大堆,我只针对这个
然后这个下出来的不止一个,你要是同一个名字就炸了,你需要设置个变量x,PS:我不推荐这么写,我推荐'{}.jpg'.format(x)这样的良好习惯是因为有一些代码不适合我这么写,会报错
x+=1
就是x+1=x,实在不明白就写 x=x+1
最后再来个
print(i)
表示你下载成功了。
最后附上总体代码
import requests
import re
import urllib.request
import time
x=1
html=requests.get('http://pic.netbian.com/')
html=html.content.decode('gbk')
F=re.findall('<img.*?src="(.*?)"',html,re.S)
for i in F:
    i=('http://pic.netbian.com'+i)
    urllib.request.urlretrieve(i,str(x)+'.jpg')
    x+=1
    print(i)
运行你会发现会报错,这个我也不知道怎么办,但是可以成功的爬取25张
如果觉的不错请给个评论~不强求。打字不易..
审核大大快点通过哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 15:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表