python获取网页的图片


获取请求头的方法:(转)https://blog.csdn.net/qq_41516463/article/details/88670991

环境:python3, 要安装bs4这个第三方库

介绍:这个程序是用来批量获取网页的图片,用于新手入门

注意:由于是入门的程序在获取某些网页的图片时会出问题!!!!!

import os
import urllib.request
from bs4 import BeautifulSoup

# 网址
url = "http://www2017.tyut.edu.cn/"

# 建立请求对象
request = urllib.request.Request(url)

# 加入请求头(一定要换成自己的!!!!)
request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36')

# 获取请求
code = urllib.request.urlopen(request)

# 得到html代码
html = code.read().decode('utf-8')

# 将html的标签转成对象(方便后面的操作)
bs = BeautifulSoup(html, 'html.parser')

# 提取所有的img标签
imagesUrl = bs.find_all('img')

sources = []

# 建立存放的路径(路径一定要存在!!!!!!)
filepath = os.getcwd() + '\\images\\'


def createFile(path: str, fpath):
    urllib.request.urlretrieve(path, fpath)


# 获取图片的路径(网址+img标签的src属性的值)
for img in imagesUrl:
    sources.append(url + str(img.get('src')))

for src in sources:
    # 用split是防止请求带参
    baseName = os.path.basename(src).split('?')
    # 图片名
    fileName = filepath + baseName[0]
    print("url=" + src, "filename=" + fileName)
    createFile(src, fileName)

print('这次您一共下载了图片' + str(len(sources)) + '')

声明:以上所有用到的网站仅用于学习,有侵权请联系删除


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM