Как вычислить md5 хеш файла с помощью JavaScript

Pandas - удобный способ анализа тегов <table> (в нем используется BeautifulSoup под капотом).

Обычно вы могли бы просто сделать pd.read_html(url), но вам нужно было бы делать запросы на использование здесь.

import pandas as pd
import requests

url = 'https://www.totalcorner.com/match/schedule/20190305'
response = requests.get(url)

tables = pd.read_html(response.text)
table = tables[0]
table = table.dropna(how='all', axis=0)
table = table.dropna(how='all', axis=1)

Выход:

print (table)
                                         League    ...     Analysis
1                        Mexico Liga MX Femenil    ...     C. O. L.
2                          Argentina Nacional B    ...     C. O. L.
3                   Ecuador Campeonato Nacional    ...     C. O. L.
4                    Argentina Primera Division    ...     C. O. L.
5                         Peru Primera Division    ...     C. O. L.
6                            Colombia Primera A    ...     C. O. L.
7                        Mexico Liga MX Femenil    ...     C. O. L.
8                        Jamaica Premier League    ...     C. O. L.
9                               Mexico Clausura    ...     C. O. L.
10                       Mexico Liga MX Femenil    ...     C. O. L.
11                       Mexico Liga MX Femenil    ...     C. O. L.
12               Bangladesh Championship League    ...     C. O. L.
13                  India Mumbai Super Division    ...     C. O. L.
14                         Womens International    ...     C. O. L.
15                         AFC Champions League    ...     C. O. L.
16                                Indonesia Cup    ...     C. O. L.
17                  India Mumbai Super Division    ...     C. O. L.
18     Australia South Australia State League 1    ...     C. O. L.
19               Bangladesh Championship League    ...     C. O. L.
20    Australia Queensland Premier League Women    ...     C. O. L.
21     Australia South Australia State League 1    ...     C. O. L.
22                         AFC Champions League    ...     C. O. L.
23                             Vietnam V-League    ...     C. O. L.
24                             Vietnam V-League    ...     C. O. L.
25                  India I-League 2nd Division    ...     C. O. L.
26                        World Club Friendlies    ...     C. O. L.
27                         AFC Champions League    ...     C. O. L.
28                         Algeria Youth League    ...     C. O. L.
29                                   Iran Div 2    ...     C. O. L.
30                                   Iran Div 2    ...     C. O. L.
..                                          ...    ...          ...
135               England National League South    ...     C. O. L.
136               England National League South    ...     C. O. L.
137               England National League South    ...     C. O. L.
138     England Southern Premier League Central    ...     C. O. L.
139       England Southern Premier League South    ...     C. O. L.
140       England Southern Premier League South    ...     C. O. L.
141           England Isthmian Premier Division    ...     C. O. L.
142           England Isthmian Premier Division    ...     C. O. L.
143                            England League 1    ...     C. O. L.
144        England Northern League Division One    ...     C. O. L.
145        England Northern League Division One    ...     C. O. L.
146              Republic of Ireland League Cup    ...     C. O. L.
147         England Isthmian Division One North    ...     C. O. L.
148              Republic of Ireland League Cup    ...     C. O. L.
149             Northern Ireland Mid Ulster Cup    ...     C. O. L.
150                       UEFA Champions League    ...     C. O. L.
151                       UEFA Champions League    ...     C. O. L.
152           Argentina Primera B Metropolitana    ...     C. O. L.
153           Argentina Primera C Metropolitana    ...     C. O. L.
154           Argentina Primera D Metropolitana    ...     C. O. L.
155                             Iceland U19 Cup    ...     C. O. L.
156  Republic of Ireland Leinster Senior League    ...     C. O. L.
157      Republic of Ireland Munster Senior Cup    ...     C. O. L.
158                               Argentina Cup    ...     C. O. L.
159                           Copa Libertadores    ...     C. O. L.
160                           Copa Libertadores    ...     C. O. L.
161                           Copa Libertadores    ...     C. O. L.
162                        Womens International    ...     C. O. L.
163           Argentina Torneo Regional Amateur    ...     C. O. L.
164             Mexico Liga de Ascenso Clausura    ...     C. O. L.

[164 rows x 13 columns]
92
задан LuRsT 18 August 2015 в 14:07
поделиться

4 ответа

While there are JS implementations of the MD5 algorithm, older browsers are generally unable to read files from the local filesystem.

I wrote that in 2009. So what about new browsers?

With a browser that supports the FileAPI, you *can * read the contents of a file - the user has to have selected it, either with an element or drag-and-drop. As of Jan 2013, here's how the major browsers stack up:

88
ответ дан 24 November 2019 в 06:32
поделиться

There is a couple scripts out there on the internet to create an MD5 Hash.

The one from webtoolkit is good, http://www.webtoolkit.info/javascript-md5.html

Although, I don't believe it will have access to the local filesystem as that access is limited.

2
ответ дан 24 November 2019 в 06:32
поделиться

I don't believe there is a way in javascript to access the contents of a file upload. So you therefore cannot look at the file contents to generate an MD5 sum.

You can however send the file to the server, which can then send an MD5 sum back or send the file contents back .. but that's a lot of work and probably not worthwhile for your purposes.

-1
ответ дан 24 November 2019 в 06:32
поделиться

Помимо невозможности получить доступа к файловой системе в JS, я бы не стал вообще доверять генерируемой клиентом контрольной сумме. Поэтому генерация контрольной суммы на сервере является обязательным в любом случае. - Tomalak Apr 20 '09 at 14:05

Что бесполезно в большинстве случаев. Вам нужен MD5, вычисленный на стороне клиента, чтобы вы могли сравнить его с кодом, пересчитанным на стороне сервера, и сделать вывод, что загрузка прошла неправильно, если они отличаются. Мне приходилось делать это в приложениях, работающих с большими файлами научных данных, где получение неповрежденных файлов было ключевым моментом. Мой случай был прост, поскольку пользователи уже вычисляли MD5 с помощью своих инструментов анализа данных, поэтому мне нужно было просто запросить его с помощью текстового поля.

4
ответ дан 24 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: