网页资源下载器

一个简单的python程序,用于下载pdf/txt/ppt等网页资源下载。

import urllib 
import urllib2 
import re 
import socket

#######################You may change here###############
baseurl = '##########'  #请自行添加下载网页地址
format = '(pdf|txt|cc|ppt|pptx)' #下载格式,可自行添加
#########################################################

def downfunc(blocknum, blocksize, totalsize):
    '''回调函数
    @blocknum:  已经下载的数据块
    @blocksize: 数据块的大小
    @totalsize: 下载文件的大小
    '''
    percent = 100.0 * blocknum * blocksize / totalsize
    if percent > 100:
        percent = 100
        print "下载完成^^~"
    else:
        print "已下载%.2f%%......"% percent

def download(downurl, localFileName=None):
    #m = re.search('(\w+.pdf)',downurl)
    m = re.search('(\w+.%s)' % format,downurl)  
    if localFileName == None:
        localFileName = m.group(0)

    print ("正在下载" + localFileName)

    try:
        urllib.urlretrieve(downurl, localFileName,downfunc)  
    except socket.timeout:
        print "下载超时"

socket.setdefaulttimeout(30)

#打开页面
page = urllib2.urlopen(baseurl) 

# 读取包含HTML源码内容的页面信息 
page_inform = page.read() 

# 获取资源列表
#list_of_res = re.findall(r'href=.*"(.*\.pdf)', page_inform)
list_of_res = re.findall(r'href=.*"(.*\.%s)' % format, page_inform)

# 去除重复的资源
list_of_res = list(set(list_of_res)) 

# 根据资源列表逐个下载
for res in list_of_res:
    downurl = res[0]
    if downurl[0:4] != 'http':
        downurl = baseurl+downurl
    download(downurl)

程序下载:
网页资源下载器

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要用 C 语言写一个网页资源下载,可以参考以下步骤: 1. 使用 C 语言中的网络库(如 libcurl)建立与目标网站的连接,获取需要下载资源的 URL。 2. 创建一个文件,准备将下载资源写入该文件中。 3. 通过网络连接发送 HTTP 请求,获取资源的内容。可以使用 libcurl 提供的函数来完成此步骤。 4. 将获取到的资源写入之前创建的文件中。 5. 关闭网络连接和文件。 6. 对于需要下载的多个资源,可以使用循环来遍历每个资源的 URL,并按照上述步骤进行下载和保存。 需要注意的是,网页资源下载需要处理各种错误情况,例如网络连接错误、资源不存在等等,以确保下载的稳定性和可靠性。 ### 回答2: 使用C语言编写一个基本的网页资源下载可以分为以下几个步骤: 1. 导入相关的头文件:包括 `<stdio.h>`用于文件操作,`<stdlib.h>`用于动态内存分配,`<string.h>`用于字符串操作等。 2. 创建一个结构体,用于保存下载资源信息,例如文件名、URL等。 3. 实现下载函数:函数的参数为要下载资源的URL和保存的文件名。在函数内部,需要使用C语言的Socket库进行网络通信,与服务建立连接并发送HTTP请求。接收到服务的回应后,根据回应中的信息获取待下载资源的长度,并创建文件用于保存下载的内容。然后逐步接收并写入文件,最后关闭连接。 4. 在主函数中,调用下载函数并传入合适的参数,完成资源下载。可以通过命令行参数或者用户输入的方式获取下载的目标URL和保存的文件名。 需要注意的是,编写一个功能完善、稳定的网络资源下载需要处理一系列的异常情况,例如网络连接错误、HTTP请求错误、文件写入错误等,还需要考虑下载速度的优化以及断点续传等功能的实现。 以上是一个简单的用C语言编写网页资源下载的基本思路,根据实际需求和具体实现情况,还可以进一步优化和完善代码。 ### 回答3: 用C语言编写一个网页资源下载可以通过以下步骤实现: 1. 导入所需的库和头文件,例如stdio.h、stdlib.h和curl库(下载文件时需要)。 2. 定义一个函数来处理下载过程。该函数将接受要下载的URL参数,并使用cURL库来下载文件。在函数内部,使用curl_easy_init()初始化一个cURL会话,使用curl_easy_setopt()设置选项(例如URL和文件名),然后使用curl_easy_perform()执行下载操作。 3. 在主函数中,使用scanf()或命令行参数获取用户输入的URL,然后调用下载函数进行下载。 以下是一个简单的示例代码: #include <stdio.h> #include <stdlib.h> #include <curl/curl.h> // 下载函数 void downloadFile(char url[]) { CURL *curl; FILE *fp; CURLcode res; curl = curl_easy_init(); if (curl) { // 设置URL curl_easy_setopt(curl, CURLOPT_URL, url); // 设置保存的文件名 fp = fopen("downloaded_file.txt", "wb"); if (fp) { curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); // 执行下载操作 res = curl_easy_perform(curl); if (res == CURLE_OK) { printf("文件下载成功!\n"); } // 关闭文件 fclose(fp); } // 清除cURL会话 curl_easy_cleanup(curl); } } int main() { char url[100]; printf("请输入要下载的URL:"); scanf("%s", url); // 调用下载函数 downloadFile(url); return 0; } 这就是一个简单的用C语言编写的网页资源下载。用户只需输入要下载的URL,程序将自动下载文件并保存为"downloaded_file.txt"。你可以根据需要对代码进行修改来实现更复杂的功能,例如下载进度显示、断点续传等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One2zeror

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值