Я хочу скачать множество файлов с одинаковым расширением файла с помощью Wget или Python, с указанной ссылки на веб-сайт. - PullRequest
0 голосов
/ 19 мая 2018

Я хотел бы загрузить файлы с одинаковыми типами файлов .utu и .zip со следующих веб-сайтов Microsoft Traffic Simulator AI Traffic Traffic: -

http://web.archive.org/web/20050315112710/http://www.projectai.com:80/libraries/acfiles.php?cat=6 * (текущие перерисовки)

http://web.archive.org/web/20050315112940/http://www.projectai.com:80/libraries/acfiles.php?cat=1 (Винтажные перерисовки)

На каждой из этих страниц есть подкатегории для Airbus Boeing и т. Д. Для типов самолетов AI, и варианты перекрашивания .zip-файлов отображаются при нажатии наизображение самолета.

Имя папки становится http://web.archive.org/web/20041114195147/http://www.projectai.com:80/libraries/repaints.php?ac=number&cat=(number) Тогда, когда вы нажимаете на файл repaints.php?становится download.php? fileid = (4-значное число)

Что мне нужно ввести, чтобы загрузить все ZIP-файлы одновременно?Поскольку щелчок по ним для загрузки по отдельности занял бы целую вечность.

Также я хотел бы загрузить все файлы с расширением .utu File, For Flight 1 ultimate Traffic AI Самолеты перекрашиваются.со следующей веб-страницы: -

http://web.archive.org/web/20060512161232/http://ultimatetraffic.flight1.net:80/utfiles.asp?mode=1&index=0

Затем Когда вы нажимаете, чтобы загрузить текстуру Ultimate Traffic Aircraft: - Последний путь к папке становится /utfiles.asp?mode=download&id=F1AIRepaintNumbers-Numbers-Numbers.utu И я хотел бы сделать то же самое, что и для других веб-сайтов.

Я использовал следующий написанный код в Python 2.79, найденный в видео на Youtube, вставляя мою информацию для достижения моей цели, но неудивительно, что он не работал, когда я запускал тайм-ауты, ошибки и т. Д., Вероятно, из-заэто просто: -

import requests

from bs4 import BeautifulSoup

import wget

def download_links(url):

source_code = requests.get(url)

plain_text = source_code.text

soup = BeautifulSoup(plain_text, "html.parser")

for link in soup.findAll('a'):

href = link.get('href')

print(href)

wget.download(href)

download_links('http://web.archive.org/web/20041225023002/http://www.projectai.com:80/libraries/acfiles.php?cat=6')

1 Ответ

0 голосов
/ 20 мая 2018

Обновление: попробуйте это обновление, теперь оно должно загрузить все zip-файлы со всех ссылок на первой странице:

from bs4 import BeautifulSoup
import requests, zipfile, io

def get_zips(zips_page):
    # print(zips_page)
    zips_source = requests.get(zips_page).text
    zip_soup = BeautifulSoup(zips_source, "html.parser")
    for zip_file in zip_soup.select("a[href*=download.php?fileid=]"):
        zip_url = link_root + zip_file['href']
        print('downloading', zip_file.text, '...',)
        r = requests.get(zip_url)
        with open(zip_file.text, 'wb') as zipFile:
            zipFile.write(r.content)


def download_links(root, cat):
    url = ''.join([root, cat])
    source_code = requests.get(url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, "html.parser")

    for zips_suffix in soup.select("a[href*=repaints.php?ac=]"):
        # get_zips(root, zips_suffix['href'])
        next_page = ''.join([root, zips_suffix['href']])
        get_zips(next_page)


link_root = 'http://web.archive.org/web/20041225023002/http://www.projectai.com:80/libraries/'

category = 'acfiles.php?cat=6'
download_links(link_root, category)
...