用python爬取网页图片,给喜欢美眉的小伙伴发福利喽
author:一佰互联 2019-03-29   click:220

简介:许多小伙伴们喜欢收集美眉的图片,秀色可餐嘛,可以理解。今天为了满足大家的要求,咿哑呀就教大家用python爬取网页上的图片,算是发年终福利啦。为了爬取网页图片,咿哑呀采取模拟浏览器的方式,先获取网页内容,再 ...

许多小伙伴们喜欢收集美眉的图片,秀色可餐嘛,可以理解。今天为了满足大家的要求,咿哑呀就教大家用python爬取网页上的图片,算是发年终福利啦。为了爬取网页图片,咿哑呀采取模拟浏览器的方式,先获取网页内容,再从中分析出图片网址并下载。因此,我们要在脚本文件中先导入相关的库,代码如下:

用python爬取网页图片,给喜欢美眉的小伙伴发福利喽

from urllib import request, parsefrom urllib.parse import quoteimport stringimport chardetfrom bs4 import BeautifulSoupimport reimport time这些库在爬取网页文本那一篇文章都讲过,不清楚的可以看看爬取网页文本文章。下面,跟爬取网页文本一样,我们写一个爬取类,这个类跟爬取网页文本类差不多,主要是在类中添加了一个分析图片网址的函数OutputFile,因为文章篇幅的原因,我就不再全部贴出这个类的代码了,有需要的小伙伴可以对照爬网页文本那个类,修改成这个类。类的修改部分如下:class spider: def __init__(self, my_root_url, min_page_num, max_page_num, img_tags, OutputDir): self.new_urls = set() self.old_urls = set() for i in range(min_page_num, max_page_num): url = my_root_url + str(i) self.add_new_url(url) num=1 while self.has_new_url(): try: new_url = self.get_new_url() page = new_url.split("/")[-1] print("%d、爬取 %s" % (num,new_url)) html_context = self.download(new_url) self.OutputFile(page, html_context, img_tags, OutputDir) num += 1 time.sleep(1) except(): print("爬取失败")

用python爬取网页图片,给喜欢美眉的小伙伴发福利喽

def download(self, new_url): ……(代码见爬取网页文本类相关部分) def OutputFile(self, page, html_context, img_tag, OutputDir): if html_context is None: return soup = BeautifulSoup(html_context, "html.parser") res1 = soup.find_all(img_tag[0], attrs=img_tag[1]) num = 1 for img in res1: imgurl1 = "http:"+img.attrs[img_tag[2]] print(imgurl1) imgname = ".\"+OutputDir+"\"+str(page)+"0"+str(num)+".jpg" try: request.urlretrieve(imgurl1, filename=imgname) except(): pass num += 1 def add_new_url(self, my_root_url): ……(代码见爬取网页文本类相关部分) def add_new_urls(self, urls): ……(代码见爬取网页文本类相关部分) def has_new_url(self): ……(代码见爬取网页文本类相关部分) def get_new_url(self): ……(代码见爬取网页文本类相关部分)

用python爬取网页图片,给喜欢美眉的小伙伴发福利喽

爬取图片类写完了,下面就是运用这个类获得图片了。具体爬哪个网站,你自己决定哟。下面继续写入以下主函数,代码中的root_url字符串填入要爬取的网址,分析网页源代码中的图片网址(代码中已提供一个样例)。并填入img_tags字符串中,在脚本文件目录中新建一目录out。一切完工!按F5运行脚本吧,然后打开out目录,有没有你喜欢的美眉图片呢?if __name__ == "__main__": root_url = "******" # <img src="http://... .jpg" ... class="illustration" ...> 图片式样 re.S 忽略"." img_tags = ["img", {"class": "illustration", "src": re.compile(r"//.*?.jpg", re.S)}, "src"] output_dir = "out"spider(root_url, 1, 50, img_tags, output_dir)

用python爬取网页图片,给喜欢美眉的小伙伴发福利喽

今天爬取网页图片就介绍到这里。谢谢大家的阅读。如果这篇文章对你有用,请点赞、转发、收藏、评论,如果喜欢我的文章,请搜索并关注“咿哑呀”,我将分享更多文章给大家。本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。