扣丁学堂Python培训之爬虫网页图片抓取方法详解

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爬虫之网页图片抓取的方法,由于代码中访问的网址已经运用了反爬虫的算法,希望对大家有所帮助。


扣丁学堂微信公众号



关注微信公众号获取更多学习资料



查看更多关于"Python开发资讯"的相关文章>


标签: Python视频教程 Python基础教程 Python爬虫 Python培训

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号