# 安装wget,用于下载美女
pip install wget
# 安装requests_html,用于爬取页面元素
pip install requests_html
1、请求headers随机选择,避免被反爬
2、定义downloadPic方法执行下载任务
3、定义getPicUrl方法,根据页面url获取图片url
4、定义main主方法,组织逻辑
5、对于图片关键词、图片数量抽离,万一你们不喜欢美女呢?
6、图片服务器选择搜狗
import wget
from requests_html import HTMLSession
import urllib,urllib3
import os
import random
urllib3.disable_warnings()
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)
user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0.564.70"
]
header = {"Content-Type": "application/json",}
header['User-Agent'] = random.choice(user_agent_list)
def downloadPic(url,kw,pic_num,out_path,pic_type='jpg'):
'''
@url: 待下载的url
@kw:图片关键词
@pic_num:计划下载的数量
@out_path:图片下载的相对路径
@pic_type:图片类型
'''
img_name = '{}-{}.{}'.format(kw,pic_num,pic_type)
img_full_name = '{}{}{}'.format(BASE_DIR,out_path,img_name)
res = wget.download(url=url,out=img_full_name)
if res:
print('img:{} has downloaded!'.format(img_name))
def getPicUrl(req_url):
session = HTMLSession()
res = session.get(url=req_url,headers=header,verify=False)
img_box = res.html.links
for i in img_box:
if 'jpg' in i or 'png' in i or 'jpeg' in i:
return i
def main(kw='美女',num=10,img_path='img'):
'''
@kw: 关键词
@num: 计划下载的数量
'''
# 将中文关键词编码
kwd = urllib.parse.quote(kw)
# 生成页面url
for i in range(num):
index = i+1
base_url = 'https://pic.sogou.com/d?query={}&forbidqc=&entityid=&preQuery=&rawQuery=&queryList=&st=&did={}'.format(kwd,index)
# 根据页面url,获取图片url
url = getPicUrl(base_url)
# 执行下载
downloadPic(url=url,kw=kw,pic_num=index,out_path=img_path)
if __name__ == "__main__":
main(kw='美女',num=10)
还不赶紧去试试?想要帅哥的,修改kw='帅哥'即可。
页面更新:2024-02-26
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号