urllib抓取图片

xiaoxiao2021-02-28  29

import urllib.request import socket import re import sys import os from bs4 import BeautifulSoup targetDir = r"E:\downLoads\github"  #文件保存路径 name = 1 def destFile(path):       if not os.path.isdir(targetDir):           os.mkdir(targetDir)       pos = path.rindex('/')       t = os.path.join(targetDir, '%s.jpg'%name)       return t ''' 此处检查当前路径是否合法,并返回一个合法的路径以及文件名 介绍一下各个函数的用法: os.path.isdir(url):判断url是否是一个合法路径,若是,返回true os.mkdir(url):创建url路径 rindex(c)返回c在path中最后一次出现的位置 os.path.join:是在拼接路径的时候用的。举个例子, os.path.join(“home”, "me", "mywork") 在Linux系统上会返回 “home/me/mywork" 在Windows系统上会返回 "home\me\mywork" 好处是可以根据系统自动选择正确的路径分隔符"/"或"\" ''' if __name__ == '__main__':     url = 'http://www.douban.com/'     headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64;rv:23.0) Gecko/20100101 Firefox/23.0'}     req = urllib.request.Request(url=url, headers=headers)     webpage = urllib.request.urlopen(req)#伪装成浏览器发送请求     content = webpage.read()     '''     (调试阶段,忽略)     fp = open('/temp/pa1.txt','wb')     fp.write(content)     fp.close()     #print(type(content))     #print(type(content))     #print(content)     soup = BeautifulSoup(content,'html.parser')     links = soup.find_all('a')     print(links)          relink = '<a href="(.*)">(.*)</a>'     info = re.findall(relink,content)     #print(info)     '''     for link, t in set(re.findall(r'(https:[^s]*?(jpg|png|gif))', str(content))):    #set(re.findall(r'(https:[^s]*?(jpg|png|gif))', str(content))):将content转化为str,使用正则表达式匹配。     #注意匹配时要根据考下来的html确定正则表达式         print(link)         name += 1         try:             urllib.request.urlretrieve(link,destFile(link))    #使用urlretrieve方法下载。使用请参照         except:             print('失败\n')

    

如果报找不到python no modle named bs4:

转载请注明原文地址: https://www.6miu.com/read-2626700.html

最新回复(0)