网页爬虫抓取百度图片(基于python写的一个爬虫程序,能实现简单的网页图片下载)

优采云 发布时间: 2021-10-02 03:10

  网页爬虫抓取百度图片(基于python写的一个爬虫程序,能实现简单的网页图片下载)

  今天给大家分享一个基于python的爬虫程序,可以实现简单的网页图片下载。具体示例代码请参考以下文章

  代码显示:

  '''

在学习过程中有什么不懂得可以加我的python学习交流扣扣qun,934109170,群里有不错的学习教程、开发工具与电子书籍。

'''

__author__ = "JentZhang"

import urllib.request

import os

import random

import re

def url_open(url):

'''

打开网页

:param url:

:return:

'''

req = urllib.request.Request(url)

req.add_header('User-Agent',

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/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()

return html

def save_img(folder, img_addrs):

'''

保存图片

:param folder: 要保存的文件夹

:param img_addrs: 图片地址(列表)

:return:

'''

# 创建文件夹用来存放图片

if not os.path.exists(folder):

os.mkdir(folder)

os.chdir(folder)

for each in img_addrs:

filename = each.split('/')[-1]

try:

with open(filename, 'wb') as f:

img = url_open("http:" + each)

f.write(img)

except urllib.error.HTTPError as e:

# print(e.reason)

pass

print('完毕!')

def find_imgs(url):

'''

获取全部的图片链接

:param url: 连接地址

:return: 图片地址的列表

'''

html = url_open(url).decode("utf-8")

img_addrs = re.findall(r'src="(.+?\.gif)', html)

return img_addrs

def get_page(url):

'''

获取当前一共有多少页的图片

:param url: 网页地址

:return:

'''

html = url_open(url).decode('utf-8')

a = html.find("current-comment-page") + 23

b = html.find("]", a)

return html[a:b]

def download_mm(url="http://jandan.net/ooxx/", folder="OOXX", pages=1):

'''

主程序(下载图片)

:param folder:默认存放的文件夹

:param pages: 下载的页数

:return:

'''

page_num = int(get_page(url))

for i in range(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()

  总结

  因为代码中访问的URL已经使用了反爬虫算法。所以爬不出来我想要的图片,所以,就做个爬虫的笔记吧。仅供学习参考【捂脸】。. . .

  最后:我把jpg格式改成gif,还是可以爬到很烂的gif:

  

  第一个是反爬虫机制的图片占位符,完全没有任何内容

  以上就是小编为大家介绍的Python爬虫抓取网页图片的方法。我希望它会对你有所帮助。如果有什么问题,请给我留言,小编会及时回复您。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线