如何用python创建一个下载网站-如何写一个python脚本下载文件??

脚本在最后,可以直接试用,相关的库可能需要自己安装

第一步,你需要获得网页上下载文件地址的列表

用浏览器查看页面源文件得到 />

可以看到,这个格式是很清晰的,用xpath获得列表即可,

这部分你可以去网上找相关教程,这部分的代码如下:

Host = 'http://cnn.csail.mit.edu/motif_occupancy/'

response = requests.get(Host).content

selector = html.fromstring(response)

book_list = selector.xpath('//table//a//@href')

# 去除部分表头元素

book_list = filter(lambda x: x.startswith('wg'), book_list)

第二步,进入其中一个下载列表

查看页面源文件得到 />

我只看了若干的几个,假设任意一个都是这种格式,那么相关的连接无需搜索即可手动确定

第三步,在本地创建文件夹,并保存文件

# 在需要的地方建立文件夹

os.system('mkdir -p %s' % book)

for category in ['train.data', 'test.data']:

url = Host + book + category

headers["Referer"] = Host + book

a = requests.get(url, headers = headers)

xxx

with open(os.path.join(book, category), 'wb') as f:

f.write(requests.get(url).content)

现在的问题是,不知道什么原因,我这边的网络下载文件速率巨慢,大概1分钟3M的样子,可能是网络的原因吧,如果题主下载速率还可以,那就没问题,如果也不行,你只能自己找找原因了。我这边浏览器下载文件也很慢,看来网站并没有抑制爬虫的措施。

整体代码为

#!/usr/local/bin/python3

#-*-coding:utf-8-*-

import requests

from lxml import html

import os

headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.1 Safari/605.1.15",

"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

"Referer": "",

"DNT": "1",

}

Host = 'http://cnn.csail.mit.edu/motif_occupancy/'

response = requests.get(Host).content

selector = html.fromstring(response)

book_list = selector.xpath('//table//a//@href')

# 去除部分表头元素

book_list = filter(lambda x: x.startswith('wg'), book_list)

for book in book_list:

# 在需要的地方建立文件夹

os.system('mkdir -p %s' % book)

for category in ['train.data', 'test.data']:

url = Host + book + category

headers["Referer"] = Host + book

with open(os.path.join(book, category), 'wb') as f:

f.write(requests.get(url, headers = headers).content)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值