2018-07-19 10:46:35 402浏览
今天扣丁学堂小编给大家整理了一下关于目前在线课程Python培训之爬虫网页图片抓取的方法,能实现简单的网页图片下载,具体实例代码,下面我们一起来看一下吧。__author__="JentZhang" importurllib.request importos importrandom importre defurl_open(url): ''' 打开网页 :paramurl: :return: ''' req=urllib.request.Request(url) req.add_header('User-Agent', 'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/49.0.2623.75Safari/537.36') #应用代理 ''' proxyies=["111.155.116.237:8123","101.236.23.202:8866","122.114.31.177:808"] proxy=random.choice(proxyies) proxy_support=urllib.request.ProxyHandler({"http":proxy}) opener=urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener) ''' response=urllib.request.urlopen(url) html=response.read() returnhtml defsave_img(folder,img_addrs): ''' 保存图片 :paramfolder:要保存的文件夹 :paramimg_addrs:图片地址(列表) :return: ''' #创建文件夹用来存放图片 ifnotos.path.exists(folder): os.mkdir(folder) os.chdir(folder) foreachinimg_addrs: filename=each.split('/')[-1] try: withopen(filename,'wb')asf: img=url_open("http:"+each) f.write(img) excepturllib.error.HTTPErrorase: #print(e.reason) pass print('完毕!') deffind_imgs(url): ''' 获取全部的图片链接 :paramurl:连接地址 :return:图片地址的列表 ''' html=url_open(url).decode("utf-8") img_addrs=re.findall(r'src="(.+?\.gif)',html) returnimg_addrs defget_page(url): ''' 获取当前一共有多少页的图片 :paramurl:网页地址 :return: ''' html=url_open(url).decode('utf-8') a=html.find("current-comment-page")+23 b=html.find("]",a) returnhtml[a:b] defdownload_mm(url="http://www.codingke.com/ooxx/",folder="OOXX",pages=1): ''' 主程序(下载图片) :paramfolder:默认存放的文件夹 :parampages:下载的页数 :return: ''' page_num=int(get_page(url)) foriinrange(pages): page_num-=i page_url=url+"page-"+str(page_num)+"#comments" img_addrs=find_imgs(page_url) save_img(folder,img_addrs) if__name__=="__main__": download_mm()
以上所述是小编给大家介绍的Python爬虫之网页图片抓取的方法,由于代码中访问的网址已经运用了反爬虫的算法,希望对大家有所帮助。
【关注微信公众号获取更多学习资料】