博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用webdriver和beautifulsoup下载国家地理图片
阅读量:6908 次
发布时间:2019-06-27

本文共 1272 字,大约阅读时间需要 4 分钟。

很久之前下载过,最近再看国家地理每日一图的时候,发现图片的形式变了,见http://photography.nationalgeographic.com/photography/photo-of-the-day

看到上面的previous链接,忽然想到自己最近也在研究webdriver,顺便可以使用之下载图片

 

使用beautifulsoup下载图片的原理,就是使用urllib打开目标URL,使用beautifulsoup去封装读取内容,然后找到文件的属性:这里可以直接去定位,或者使用正则表达式.webdriver在这里的作用是点页面上的previous链接,然后在每个新的页面去定位要下载的图片.最后使用urlretrieve方法把图片下载到本地.

import urllibfrom selenium import webdriverimport osfrom bs4 import BeautifulSoup as BSbase_dir = os.path.join(os.getcwd(), "nationalgeographic")if not os.path.exists(base_dir):    os.mkdir(base_dir)    base_url = 'http://photography.nationalgeographic.com/photography/photo-of-the-day'driver = webdriver.Firefox()driver.get(base_url)previois_link = driver.find_element_by_partial_link_text('Previous')while previois_link:    print 'current url is: ', driver.current_url    content = urllib.urlopen(driver.current_url).read()    soup = BS(content)    urls = soup.findAll('img', width = '990')    for url in urls:        url = url["src"]        filename = base_dir + '\\' + url.split('/')[-1]        urllib.urlretrieve(url, filename)        print 'download', filename, 'to', base_dir    previois_link = driver.find_element_by_partial_link_text('Previous')    previois_link.click()    driver.refresh()    print 'after refresh', driver.current_url

转载地址:http://oigdl.baihongyu.com/

你可能感兴趣的文章
2015.08.26枚举
查看>>
WCF服务端运行时架构体系详解[上篇]
查看>>
教师人事管理系统需求记录
查看>>
调试工具
查看>>
张伯旭:北京亦庄着力打造中国云产业园
查看>>
Android中的利器-AsyncTask
查看>>
后高考时代必备APP 社交、旅行都不能少
查看>>
极简网络:不止于4.0,只为“更简单”
查看>>
大数据优化 | 预见未来:谁是你的“克里斯”
查看>>
人工智能医生可以更准确地预测心脏疾病患者的死亡时间
查看>>
静态之殇 GIN实时防护体系打造安全生态系统
查看>>
九九数据海外CDN助力直播开拓全球业务
查看>>
CTO下午茶:找到海神的三叉戟,打破运维的魔与咒
查看>>
企业移动化安全要先行
查看>>
行业观察:这是一个“认知优先”世界
查看>>
新华网与阿里合资创立云计算公司
查看>>
全闪数据中心的数据缩减攻略
查看>>
如何有效减少测试用例数目
查看>>
警惕!2016最大难题或源于云计算并发症
查看>>
亚信安全预警:一大波勒索软件变种来袭
查看>>