序言
文中的句子及图片来源于网络,仅作学习培训、沟通交流应用,不具备一切商业行为,版权归创作者全部,如有问题请尽快在线留言以作解决。
创作者: GitPython
PS:如果有需要Python学习材料的小伙伴可以加点击进入连接自主获取
1.获取图片的url连接
最先,打开百度图片主页,注意下图url中的cndex
然后,把页面切换成传统式换页版(flip),由于这样有助于大家抓取图片!
对比了好多个url发觉,pn主要参数是要求到的总数。根据改动pn主要参数,观查返回的数据信息,发觉每一页不得超过是60个图片。
注:gsm主要参数是pn参数16进制表述,除掉可以
随后,鼠标右键查验网页源码,立即(ctrl F)检索 objURL
那样,大家看到了必须图片的url了。
2.把图片连接储存到当地
如今,我们要做的就是把这些信息内容抓取出去。
注:网页页面中有objURL,hoverURL…但我们用的都是objURL,由于这是原照
那样,怎样获取objURL?用正则表达式!
那我们该如何用正则表达式完成呢?实际上只需一行代码…
results = re.findall(\'\"objURL\":\"(.*?)\",\', html)
关键编码:
1.获取图片url编码:
# 获取图片url联接def get_parse_page(pn,name): for i in range(int(pn)): # 1.获取网页页面 print(\'已经获取第{}页\'.format(i 1)) # 百度搜索图片主页的url # name是你需要检索核心关键词 # pn是你要下载的页码 url = \'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%s&pn=%d\' %(name,i*20) headers = { \'User-Agent\': \'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4843.400 QQBrowser/9.7.13021.400\'} # 发送请求,获取相对应 response = requests.get(url, headers=headers) html = response.content.decode() # print(html) # 2.正则表达式分析网页页面 # \"objURL\":\"http://n.sinaimg.cn/sports/transform/20170406/dHEk-fycxmks5842687.jpg\" results = re.findall(\'\"objURL\":\"(.*?)\",\', html) # 回到一个目录 # 依据获取过的图片连接,把图片储存到当地 save_to_txt(results, name, i)
2.储存图片到本地代码:
# 储存图片到当地def save_to_txt(results, name, i): j = 0 # 在当目录下创建文件夹 if not os.path.exists(\'./\' name): os.makedirs(\'./\' name) # 免费下载图片 for result in results: print(\'已经储存第{}个\'.format(j)) try: pic = requests.get(result, timeout=10) time.sleep(1) except: print(\'现阶段图片无法下载\') j = 1 continue # 可忽视,这一段编码有bug # file_name = result.split(\'/\') # file_name = file_name[len(file_name) - 1] # print(file_name) # # end = re.search(\'(.png|.jpg|.jpeg|.gif)$\', file_name) # if end == None: # file_name = file_name \'.jpg\' # 把图片储存到文件夹 file_full_name = \'./\' name \'/\' str(i) \'-\' str(j) \'.jpg\' with open(file_full_name, \'wb\') as f: f.write(pic.content) j = 1
3.主函数代码:
# 主函数if __name__ == \'__main__\': name = input(\'输入您你要下载核心关键词:\') pn = input(\'你要免费下载前两页(1页有60张):\') get_parse_page(pn, name)
使用说明书:
# 配备下列控制模块import requests import reimport osimport time# 1.运作 py源代码# 2.键入你要检索核心关键词,例如“柯基”、“小泰迪”等# 3.键入你要下载的页码,例如5,那便是免费下载 5 x 60=300 张图片
个人收藏 检举
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。