Python複数のファイルをダウンロード

モンティ

このサイトからすべてのPGNをダウンロードしようとしています

を使用urlopenして各URLを開きurlretrieve、各ゲームの下部にあるダウンロードボタンからアクセスして各pgnをダウンロードする必要があると思います。BeautifulSoupゲームごとに新しいオブジェクトを作成する必要がありますか?また、どのようにurlretrieve機能するのかもわかりません

import urllib
from urllib.request import urlopen, urlretrieve, quote
from bs4 import BeautifulSoup

url = 'http://www.chessgames.com/perl/chesscollection?cid=1014492'
u = urlopen(url)
html = u.read().decode('utf-8')

soup = BeautifulSoup(html, "html.parser")
for link in soup.find_all('a'):
    urlopen('http://chessgames.com'+link.get('href'))
ローマのマインドリン

あなたの質問に対する短い答えはありません。完全な解決策を示し、このコードにコメントします。

まず、必要なモジュールをインポートします。

from bs4 import BeautifulSoup
import requests
import re

次に、インデックスページを取得し、BeautifulSoupオブジェクトを作成します。

req = requests.get("http://www.chessgames.com/perl/chesscollection?cid=1014492")
soup = BeautifulSoup(req.text, "lxml")

lxml一般的ではないパーサーを使用することを強くお勧めします。html.parserその後、ゲームのリンクリストを準備する必要があります。

pages = soup.findAll('a', href=re.compile('.*chessgame\?.*'))

'chessgame'という単語を含むリンクを検索することでそれを行うことができます。ここで、ファイルをダウンロードする関数を準備する必要があります。

def download_file(url):
    path = url.split('/')[-1].split('?')[0]
    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(path, 'wb') as f:
            for chunk in r:
                f.write(chunk)

そして最後の魔法は、ファイルダウンローダーのリンクを準備する前のすべての手順を繰り返すことです。

host = 'http://www.chessgames.com'
for page in pages:
    url = host + page.get('href')
    req = requests.get(url)
    soup = BeautifulSoup(req.text, "lxml")
    file_link = soup.find('a',text=re.compile('.*download.*'))
    file_url = host + file_link.get('href')
    download_file(file_url)

(最初に説明に「ダウンロード」というテキストを含むリンクを検索し、次に完全なURLを作成します-ホスト名とパスを連結し、最後にファイルをダウンロードします)

このコードを修正せずに使用できることを願っています!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Restfull複数ファイルのダウンロード

分類Dev

複数の接続を持つファイルをダウンロード

分類Dev

PythonでLibtorrentを使用して複数のトレントファイルをダウンロードする

分類Dev

複数の同時ファイルをダウンロードする

分類Dev

Carrierwaveで複数のファイルをダウンロードする

分類Dev

PowerShellで複数のファイルをダウンロードする方法

分類Dev

複数の添付ファイルをダウンロードする

分類Dev

同時に複数のファイルをダウンロードする

分類Dev

Firebaseで複数のファイルをダウンロードする

分類Dev

Pythonを使用してURLから複数のzipファイルをダウンロードする

分類Dev

Pythonで日付ごとにhttpから複数のXLSファイルをダウンロードする

分類Dev

複数のファイルを含むzipファイルをダウンロードするSpringBoot Rest Service

分類Dev

複数のファイルをダウンロードし、wgetで出力ファイル名を指定する

分類Dev

Shinyのzipフォルダーに複数のcsvファイルをダウンロードする

分類Dev

複数のファイルをダウンロードするHTTPサーバーとクライアント

分類Dev

複数のファイルをダウンロードするためのNSURLSessionとマルチスレッド

分類Dev

Laravel5複数ダウンロードファイル

分類Dev

Asp.net複数のファイルのダウンロード

分類Dev

AndroidはOkHttpとコルーチンで複数のファイルをダウンロードします

分類Dev

Amazon S3コンソール:複数のファイルを一度にダウンロード

分類Dev

foreachループの問題内で複数のファイルをダウンロードする

分類Dev

googleアドオンから複数のファイルをダウンロードする

分類Dev

CSVファイルとPythonを使用した複数の画像ダウンローダー

分類Dev

Androidのサービスを使用して複数のファイルをダウンロードする

分類Dev

Javaはスレッドを使用して複数のファイルをダウンロードします

分類Dev

Pythonを使用してGoogleクラウドストレージから複数のファイルをダウンロードする

分類Dev

Sharepointの同じリンクから複数のファイルをダウンロードする方法

分類Dev

HtmlUnitを使用してページごとに複数のファイルをダウンロードする

分類Dev

複数のスレッドからファイルをダウンロードする

Related 関連記事

  1. 1

    Restfull複数ファイルのダウンロード

  2. 2

    複数の接続を持つファイルをダウンロード

  3. 3

    PythonでLibtorrentを使用して複数のトレントファイルをダウンロードする

  4. 4

    複数の同時ファイルをダウンロードする

  5. 5

    Carrierwaveで複数のファイルをダウンロードする

  6. 6

    PowerShellで複数のファイルをダウンロードする方法

  7. 7

    複数の添付ファイルをダウンロードする

  8. 8

    同時に複数のファイルをダウンロードする

  9. 9

    Firebaseで複数のファイルをダウンロードする

  10. 10

    Pythonを使用してURLから複数のzipファイルをダウンロードする

  11. 11

    Pythonで日付ごとにhttpから複数のXLSファイルをダウンロードする

  12. 12

    複数のファイルを含むzipファイルをダウンロードするSpringBoot Rest Service

  13. 13

    複数のファイルをダウンロードし、wgetで出力ファイル名を指定する

  14. 14

    Shinyのzipフォルダーに複数のcsvファイルをダウンロードする

  15. 15

    複数のファイルをダウンロードするHTTPサーバーとクライアント

  16. 16

    複数のファイルをダウンロードするためのNSURLSessionとマルチスレッド

  17. 17

    Laravel5複数ダウンロードファイル

  18. 18

    Asp.net複数のファイルのダウンロード

  19. 19

    AndroidはOkHttpとコルーチンで複数のファイルをダウンロードします

  20. 20

    Amazon S3コンソール:複数のファイルを一度にダウンロード

  21. 21

    foreachループの問題内で複数のファイルをダウンロードする

  22. 22

    googleアドオンから複数のファイルをダウンロードする

  23. 23

    CSVファイルとPythonを使用した複数の画像ダウンローダー

  24. 24

    Androidのサービスを使用して複数のファイルをダウンロードする

  25. 25

    Javaはスレッドを使用して複数のファイルをダウンロードします

  26. 26

    Pythonを使用してGoogleクラウドストレージから複数のファイルをダウンロードする

  27. 27

    Sharepointの同じリンクから複数のファイルをダウンロードする方法

  28. 28

    HtmlUnitを使用してページごとに複数のファイルをダウンロードする

  29. 29

    複数のスレッドからファイルをダウンロードする

ホットタグ

アーカイブ