Python——网络爬虫(爬取网页图片)

Posted ITAK

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——网络爬虫(爬取网页图片)相关的知识,希望对你有一定的参考价值。

最近在学习 Python, 然后就试着写了一个简单的Python小程序,爬取一个网页的图片,不得不说 Python 真的强大,以下是爬取 NEFU Online Judge 网站的代码。

吐槽:其实爬取所想要东西的时候,正则表达式真的很重要,这个需要好好学习一下。
代码:

'''
批量下载 NEFU Online Judge 的图片

爬取NEFU Online Judge网站首页的图片,保存到指定路径文件夹下
'''
import urllib.request,socket,os,re,sys

targetPath  = "D:\\\\MyPython\\\\爬虫\\\\03_images"
def saveFile(path):
    #检测当前路径是否存在
    if not os.path.isdir(targetPath):
        os.mkdir(targetPath)
    # 设置每个图片的路径
    pos = path.rindex('/') #rindex()  返回子字符串 str 在字符串中最后出现的位置
    ans = os.path.join(targetPath,path[pos+1:])
    return ans

url = "http://acm.nefu.edu.cn/"

#请求

req = urllib.request.Request(url)
#爬取的结果

res = urllib.request.urlopen(req)

#将结果显示
data = str(res.read())

tmp = "http://acm.nefu.edu.cn//JudgeOnline/"
pattern = r'([\\w./]+\\.(jpg|JPG|png|PNG|gif))'
#pattern = r'(https:[^s]*?(jpg|JPG|png|PNG|gif))'
imgurl = re.findall(pattern, data)#re.findall 正则表达式

for link,value in imgurl:
    url = tmp+str(link)
    print(url) #打印链接
    try:
        urllib.request.urlretrieve(url,saveFile(url))#urlretrieve() 方法直接将远程数据下载到本地
    except:
        print("爬取失败")

以上是关于Python——网络爬虫(爬取网页图片)的主要内容,如果未能解决你的问题,请参考以下文章

python 网络爬虫,怎么自动保存图片

01-Python 零基础入门爬虫 图片爬取

网络爬虫在爬取网页时,响应头没有编码信息...如何解决保存在本地的乱码问题?

Python网络爬虫四通过关键字爬取多张百度图片的图片

Python网络爬虫四多线程爬取多张百度图片的图片

如何用爬虫爬取网页上的数据