社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
首先说明,我也是初学者,代码中有什么不足还请见谅(不过目前运行下,没发现什么问题)。
然后看知乎上不少人都是那妹子图作为新人练手的项目,那我也写一个妹子图的爬虫吧。这里放出来,给新人们参考参考,一起学习!
不说废话了,直接上代码:
import re
import requests
import os
import time
##创建目录文件夹
def mkdir(path):
path=path.strip()
path=path.rstrip("\")
isExists=os.path.exists(path)
if not isExists:
os.makedirs(path)
print('目录文件夹创建成功!')
return True
else:
print('目录已存在,无需再创建!')
return False
##下载保存图片
def down_load(url_list,name):
if '.' in name :
name=name.replace('.',' ')
i=1
mkpath="D:\妹子图\"+name
mkdir(mkpath)
file_name = mkpath + '\'
for url in url_list:
response = requests.get("网站链接(隐藏)"+url)
with open(file_name + name+str(i) + '.jpg',"wb") as f:
f.write(response.content)
i=i+1
print("正在下载:",name,'n',url)
##从子页面获取图片链接
def jpg_url (url):
try:
response = requests.get("网站链接(隐藏)" + url)
name=re.findall(' <title>(.*?)</title>',response.text,re.S)[0]
url =re.findall('<img alt="" src="(.*?)"',response.text,re.S)
return url, name
except Exception as e:
print(e)
##获取子页面链接
def meizi_url(url):
try:
response = requests.get(url,headers=headers)
url_list2= re.findall('<a href="(/dtl.*?)"',response.text,re.S)
list_2=(set(url_list2))
for url in list_2:
yield url
except Exception as e:
print(e)
##批量下载
if __name__ == '__main__':
print('hello,妹子图会下载到 D:\妹子图 哦!')
for n in range(1,18):
try:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'}
meizi="网站链接(隐藏)/PicList/?typeid=6&pageindex="+str(n)
meizi_list = meizi_url (meizi)
for m_url in meizi_list:
url_list,name = jpg_url (m_url)
down_load(url_list,name)
time.sleep(3)
except Exception as e:
print(e)
print('下载完成!')
input('图片已储存到D:\妹子图,请理性观赏,身体为重!')
网站链接我隐藏掉了,毕竟不是什么正经网站。
还有一个升级版本的,连同打包的exe文件一起放云盘了,需要的可以下载。
链接:https://pan.baidu.com/s/1zqx24ybf-gb3wsgeU8sHXQ
提取码:rmrr
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!