私はBeautifulSoup
をPythonで使用しています。BeautifulSoupのWebページからファイルのサイズを取得する方法
ウェブページからダウンロード可能なファイルのサイズを取得します。たとえば、thisページには、txt
ファイルをダウンロードするリンクがあります(「保存」をクリックします)。そのファイルのサイズ(バイト単位)を取得するにはどうしたらいいですか?
BeautifulSoup
にオプションがない場合は、Pythonの内外に別のオプションを提案してください。
私はBeautifulSoup
をPythonで使用しています。BeautifulSoupのWebページからファイルのサイズを取得する方法
ウェブページからダウンロード可能なファイルのサイズを取得します。たとえば、thisページには、txt
ファイルをダウンロードするリンクがあります(「保存」をクリックします)。そのファイルのサイズ(バイト単位)を取得するにはどうしたらいいですか?
BeautifulSoup
にオプションがない場合は、Pythonの内外に別のオプションを提案してください。
requests
パッケージを使用して、テキストファイルを用意していますURLへHEAD
リクエストを送信し、ヘッダーにContent-Length
を確認することができます。
>>> url = "http://cancer.jpl.nasa.gov/fmprod/data?refIndex=0&productID=02965767-873d-11e5-a4ea-252aa26bb9af"
>>> res = requests.head(url)
>>> res.headers
{'content-length': '944', 'content-disposition': 'attachment; filename="Lab001_A_R03.txt"', 'server': 'Apache-Coyote/1.1', 'connection': 'close', 'date': 'Thu, 19 May 2016 05:04:45 GMT', 'content-type': 'text/plain; charset=UTF-8'}
>>> int(res.headers['content-length'])
944
をあなたはthe page上で述べたように大きさが同じである見ることができるように。
ページでは、あなたがそれを信じるならば、あなたがページの体からそれを抽出することができ、この情報を提供するので:
import re
import requests
from bs4 import BeautifulSoup
url = 'http://edrn.jpl.nasa.gov/ecas/data/product/02965767-873d-11e5-a4ea-252aa26bb9af/1'
content = requests.get(url).text
soup = BeautifulSoup(content, 'lxml')
p = re.compile(r'^(\d+) bytes$')
el = soup.find(text=p)
size = p.match(el.string).group(1)
print(size) # 944
ありがとう!私はKBとMBで浮動小数値を持っているので、もう一つの答えは私のためにはうまくいく。他の人には、値がfloatであれば、これを試してください:http://stackoverflow.com/questions/4703390/how-to-extract-a-floating-number-from-a-string-in-python OR http: //stackoverflow.com/questions/385558/extract-float-double-value –
ああ、私は、このページにはすでにそれを言及していることがわかりませんでした。しかし、これを他のページに使用します。ありがとう! –
@DarshilChauhan:お手伝いします! – AKS