python Requsets下载开源网站的代码(带索引 数据)

环境搭建

python 3.x
requests 包
re 包
gooey包 (用于可视化)

代码

import requests
import re
import os
from gooey import Gooey, GooeyParser
import time

s = requests.Session()

def judgeTypeOfPath(name):
    '''
    判断该路径是文件还是文件夹
      :param name: 路径名称
      :return:True->文件;False->文件夹
    '''
    if name[-1] == '/':
        return False
    else:
        return True

def makeDirOfPath(path):
    '''
    创建文件夹
    :param path: 文件夹名称以及路径
    :return: True->创建成功;False->创建失败
    '''
    if not os.path.isdir(path):
        os.mkdir(path)
    if not os.path.isdir(path):
        return False
    return True

def getPath(url):
    '''
    获取网页路径列表
    :param url: 当前网页路径
    :return: 路径列表
    '''
    baseResponse = s.get(url=url, stream=True,verify=False).text
    listOfDirOrFilesTemp = re.findall(r'<li><a href=".*?" rel="external nofollow" >', baseResponse)
    listOfDirOrFiles = []
    for i in range(len(listOfDirOrFilesTemp)):
        listOfDirOrFiles.append(listOfDirOrFilesTemp[i].split("\"")[1])
    return listOfDirOrFiles[1:len(listOfDirOrFiles) + 1]

def rfSearch(listOfPath,url, nowPath):
    '''
    递归寻找目录、路径,并下载文件
    :param listOfPath: 当前目录下文件以及文件夹目录列表
    :param nowPath: 现在所在路径
    :return:
    '''
    newList = listOfPath[:]
    if not newList:
        return
    for i in range(len(newList)):
        if not judgeTypeOfPath(newList[i]):
            u = nowPath + newList[i][0:len(newList[i])]
            makeDirOfPath(u)
            tempPath=nowPath + newList[i][0:len(newList[i])+1]
            tempUrl=url+newList[i][0:len(newList[i])+1]
            u=getPath(tempUrl)
            rfSearch(u,tempUrl,tempPath)
        else:
            print(f'开始下载{newList[i]}...')
            t1=time.time()
            u = nowPath + newList[i]
            m=url+newList[i]
            if not os.path.exists(u):
                r = s.get(m, stream=True,verify=False)
                f = open(u, "wb")
                for chunk in r.iter_content(chunk_size=10240):
                    if chunk:
                        f.write(chunk)
                f.close()
            t2=time.time()
            print(f'{newList[i]}下载完成\t\t用时  {t2-t1}')

@Gooey(
    program_name='isric数据下载器',
    encoding="utf-8", )
def main():
    parser = GooeyParser(description="isric数据下载器")
    parser.add_argument('--url',default=r'https://files.isric.org/soilgrids/latest/data/')
    parser.add_argument('--path', widget="DirChooser", default=r'F:/isricData/')
    args = parser.parse_args()
    url=args.url
    nowPath = args.path
    u = getPath(url)
    rfSearch(u, url,nowPath)
###如果不需要可视化,则不用gooey,可以将上面部分替换如下
#@Gooey(
#    program_name='isric数据下载器',
#   encoding="utf-8", )
#上面三行删除即可
###main函数替换成下面部分:
# def main():
#     url=r'https://files.isric.org/soilgrids/latest/data/'#在此处修改地址链接
#     nowPath = r'F:/isricData/'#在此处修改文件保存地址
#     u = getPath(url)
#     rfSearch(u, url,nowPath)

if __name__ == "__main__":
    main()

到此这篇关于python Requsets下载开源网站的代码(带索引 数据)的文章就介绍到这了,更多相关python Requsets下载内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python 给下载文件显示进度条和下载时间的实现

    大家在下载文件时能够显示下载进度和时间非常好,其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 def progressbar(url,path): if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹 os.mkdir(path) start = time.time() #下载开始时间 respons

  • python中使用you-get库批量在线下载bilibili视频的教程

    此文章描述的是在windows10系统pc端python环境下,利用you-get库来进行bilibili视频批量下载,是在cmd中操作完成,只建议有python环境的用户使用. 1.安装you-get库,此处需要注意的是you-get的安装不可以用conda命令行安装,刚刚一股脑只想着annoconda的conda命令,浪费了很多时间. pip install you-get 2.安装完成以后,就可以进行视频下载啦! you-get -o 本地存储路径 bilibili视频在线网址 以上是单个

  • Python根据URL地址下载文件并保存至对应目录的实现

    引言 在编程中经常会遇到图片等数据集将图片等数据以URL形式存储在txt文档中,为便于后续的分析,需要将其下载下来,并按照文件夹分类存储.本文以Github中Alexander Kim提供的图片分类数据集为例,下载其提供的图片样本并分类保存 Python 3.6.5,Anaconda, VSCode 1. 下载数据集文件 建立项目文件夹,下载上述Github项目中的raw_data文件夹,并保存至项目目录中.  2. 获取样本文件位置 编写get_doc_path.py,根据根目录位置,获取目录

  • python实现从ftp服务器下载文件

    代码之余,将代码过程重要的一些代码段备份一下,如下的代码内容是关于Python从ftp服务器下载文件的的代码,希望能对小伙伴有用途. #coding=utf-8 ''' ftp自动下载.自动上传脚本,可以递归目录操作 ''' from ftplib import FTP import os,sys,string,datetime,time import socket class MYFTP: def __init__(self, hostaddr, username, password, rem

  • python Requsets下载开源网站的代码(带索引 数据)

    环境搭建 python 3.x requests 包 re 包 gooey包 (用于可视化) 代码 import requests import re import os from gooey import Gooey, GooeyParser import time s = requests.Session() def judgeTypeOfPath(name): ''' 判断该路径是文件还是文件夹 :param name: 路径名称 :return:True->文件;False->文件夹

  • Python 批量下载阴阳师网站壁纸

    代码复制可直接使用,记得pip install下载requests和bs4 最终版本 # 引入系统类库用于打开关闭文件 import sys # 使用文档解析类库 from bs4 import BeautifulSoup # 使用网络请求类库 import requests #图片保存目录 path = 'D:/阴阳师' #阴阳师壁纸网站 html_doc = "https://yys.163.com/media/picture.html" # 请求 requests_html_do

  • python批量下载壁纸的实现代码

    复制代码 代码如下: #! /usr/bin/env python ##python2.7-批量下载壁纸 ##壁纸来自桌酷网站,所有权归属其网站 ##本代码仅做为交流学习使用,请勿用于商业用途,否则后果自负 ##Code by Dreamlikes import re,urllib,urllib2 #保存图片的路径 savepath = 'd:\\picture\\' #壁纸集合的URL,如下 url = 'http://www.zhuoku.com/zhuomianbizhi/game-gam

  • Python下载网络小说实例代码

    看网络小说一般会攒上一波,然后导入Kindle里面去看,但是攒的多了,机械的Ctrl+C和Ctrl+V实在是OUT,所以就出现了此文. 其实Python我也是小白,用它的目的主要是它强大文本处理能力和网络支持,以及许多好用的库,不需要自己造轮子.而且真心比C方便啊(真是用了才知道) 分析要获取的网页 我要获取的主要是3个东西: 文章的标题.<div id="title">正文 第一章 北灵院</div> 文章正文内容.<div id="conte

  • 15行Python代码带你轻松理解令牌桶算法

    在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法就实现了这个功能, 可控制发送到网络上数据的数目,并允许突发数据的发送. 什么是令牌 从名字上看令牌桶,大概就是一个装有令牌的桶吧,那么什么是令牌呢? 紫薇格格拿的令箭,可以发号施令,令行禁止.在计算机的世界中,令牌也有令行禁止的意思,有令牌,则相当于得到了进行操作的授权,没有令牌,就什么都不能做. 用令牌实现限速器 我们用1块令牌来代表发送1字节数据的资格,假设我们源源不断的发放令牌给程序,程

  • 基于Python下载网络图片方法汇总代码实例

    本文介绍下载python下载网络图片的方法,包括通过图片url直接下载.通过re/beautifulSoup解析html下载以及对动态网页的处理等. 通过pic_url单个/批量下载 已知图片url,例如http://xyz.com/series-*(1,2..N).jpg,共N张图片,其链接形式较为固定,这样经简单循环,直接通过`f.write(requests.get(url).content)'即可以二进制形式将图片写入. import os import requests def dow

  • Python实现定时检测网站运行状态的示例代码

    通过定时的检测网站的状态,通常检测地址为网站的域名,如果链接的状态码不是200,那么,就将对其进行下线处理,在特定时间后对其进行二次探测状态,如果符合将其上线,以前使用的创宇云的监控,但是功能比较单一,无法满足需求,近期使用Python来实现这一功能,后期将编写监控模块,并进行代码开源或搭建公共服务器. 本次抒写的是链接状态码获取,可以一应用在网站监控,友情链接监控等方面,及时作出提醒预警.状态处理等,方便网站优化.本次使用了python的requests.datatime.BlockingSc

  • 用Python自动下载网站所有文件

    最近维基 jie mi 彻底公开了网站的全部文件,我就在想如何使用 Python 将其下载到本地永久保存,于是就有了这篇文章,写爬虫会遇到很多坑,借鉴他人经验,考虑越全面,出错的概率就越小. 假如一个网站,里面有很多链接,有指向文件的,有指向新链接的,新的链接点击进去后,仍然是有指向文件的,有指向新链接的,类似一个文件夹,里面即有文件,又有目录,目录中又有文件和目录.如何从这样的网站上下载所有的文件,并按网站的目录结构来保存这些文件呢? 关键词:Python.下载.正则表达式.递归. 按照自顶向

  • python 爬取影视网站下载链接

    项目地址: https://github.com/GriffinLewis2001/Python_movie_links_scraper 运行效果 导入模块 import requests,re from requests.cookies import RequestsCookieJar from fake_useragent import UserAgent import os,pickle,threading,time import concurrent.futures from goto

  • Python实现破解网站登录密码(带token验证)

    目录 前言 关键代码解释 完整代码 运行结果 补充 前言 上一篇暴力破解文章:一个简单的Python暴力破解网站登录密码脚本 测试靶机为Pikachu漏洞练习平台暴力破解模块下的 “token防爆破?” 春节期间歇了一阵子,吃睡玩看小说.写这个脚本的起因是因为burp设置带token的暴力破解我只会用pitchfork草叉模式,要是用cluster bomb集束炸弹模式笛卡儿积那样就不会了,所以就干脆把之前写的脚本加了点东西实现这个功能了,到时候有空再学学多线程,爆破速度就更快了. 关键代码解释

随机推荐