#python #python-requests #lxml
#питон #python-запросы #lxml #python
Вопрос:
Я создаю скрипт для расшифровки md5, и проблема в том, что когда я получаю отзыв от сервера, он выдает мне всю HTML-страницу целиком, как мне использовать определенный тег в html с помощью lxml? вот html, это только то, что я хочу взять
</div><br>b2f21ccee13ffff12eec42e5ee981ea4 : <b>cahyadarma30</b><br><br>Trouvé en 0.031s<br><br>
Отредактировано : Здесь весь скрипт страницы
<html class="gr__md5decrypt_net" lang="fr"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="Description" content="Crypter un mot en md5, ou décrypter un md5 en le comparant à notre base de données de <b>10,311,700,316</b> hashs uniques gratuitement.">
<meta name="Keywords" content="cassage md5 crypt encrypt decrypt hack crack hacking cracking sécurité informatique decrypter">
<link rel="icon" type="image/ico" href="/includes/favicon.ico">
<meta name="viewport" content="width=device-width, user-scalable=yes">
<link rel="alternate" href="https://md5decrypt.net/en/" hreflang="en-US">
<title>Md5 Encryption amp;amp; Decryption Gratuite - Plus de 10.000.000.000 hashs</title>
<link rel="stylesheet" href="css.css" type="text/css">
<link rel="preload" href="https://adservice.google.co.id/adsid/integrator.js?domain=md5decrypt.net" as="script"><script src="https://www.googletagservices.com/activeview/js/current/osd.js?cb=/r20100101"></script><script src="https://pagead2.googlesyndication.com/pub-config/r20160913/ca-pub-7320132219000404.js"></script><script src="https://pagead2.googlesyndication.com/pagead/js/r20190401/r20190131/show_ads_impl.js" id="google_shimpl"></script><script type="text/javascript" src="https://adservice.google.co.id/adsid/integrator.js?domain=md5decrypt.net"></script><link rel="preload" href="https://adservice.google.com/adsid/integrator.js?domain=md5decrypt.net" as="script"><script type="text/javascript" src="https://adservice.google.com/adsid/integrator.js?domain=md5decrypt.net"></script><link rel="preload" href="https://pagead2.googlesyndication.com/pagead/js/r20190401/r20190131/show_ads_impl.js" as="script"></head>
<body onload="document.getElementbyId('hash_input').focus();" data-gr-c-s-loaded="true">
<ul id="menu">
<li><a href="https://md5decrypt.net/">Accueil</a></li>
<li>
<a href="#">Encrypt / Decrypt</a>
<ul id="menu_decrypt">
<li><a href="https://md5decrypt.net/" title="Décryption des hashs md5">Decryption Md5</a></li>
<li><a href="https://md5decrypt.net/Md4/" title="Décryption des hashs md4">Decryption Md4 </a></li>
<li><a href="https://md5decrypt.net/Sha1/" title="Décryption des hashs sha1">Decryption Sha1</a></li>
<li><a href="https://md5decrypt.net/Sha256/" title="Décryption des hashs sha256">Decryption Sha256</a></li>
<li><a href="https://md5decrypt.net/Sha384/" title="Décryption des hashs sha384">Decryption Sha384</a></li>
<li><a href="https://md5decrypt.net/Sha512/" title="Décryption des hashs sha512">Decryption Sha512</a></li>
<li><a href="https://md5decrypt.net/Ntlm/" title="Décryption des hashs NTLM">Decryption Ntlm</a></li>
<li><a href="https://md5decrypt.net/Xor/" title="Décryption cryptage XOR">Decryption Xor</a></li>
<li><a href="https://md5decrypt.net/Code-morse/" title="Décryption Code Morse">Decryption Code Morse</a></li>
<li><a href="https://md5decrypt.net/Leet-traducteur/" title="Leet speak traducteur">Leet traducteur</a></li>
<li><a href="https://md5decrypt.net/Detecteur/" title="Détection type de hash">Détecteur de hash</a></li>
<li><a href="https://md5decrypt.net/Bcrypt/" title="Encryption Bcrypt">Encryption Bcrypt</a></li>
<li><a href="https://md5decrypt.net/Blowfish/" title="Encryption Blowfish">Encryption Blowfish</a></li>
<li><a href="https://md5decrypt.net/Whirlpool/" title="Encryption Whirlpool">Encryption Whirlpool</a></li>
<li class="mobile_li"><a href="https://md5decrypt.net/Outils-conversion/" title="Outils de conversion hexadécimal binaire base 64">Outils de conversion</a></li>
<li class="mobile_li"><a href="https://md5decrypt.net/about/" title="contactez moi">Contact</a></li>
<li class="mobile_li"><a href="https://md5decrypt.net/" title="Version française">Français</a></li>
<li class="mobile_li"><a href="https://md5decrypt.net/en/" title="English version">English</a></li>
</ul>
</li>
<li><a href="https://md5decrypt.net/Outils-conversion/" title="Outils de conversion hexadécimal binaire base 64">Outils de conversion</a></li>
<li>
<a href="#">Chiffres</a>
<ul id="menu_cipher">
<li><a href="https://md5decrypt.net/Chiffre-gronsfeld/" title="Décryption du chiffrement de Gronsfeld">Decryption chiffre de Gronsfeld</a></li>
<li><a href="https://md5decrypt.net/Chiffre-tritheme/" title="Décryption du chiffrement de Trithème">Decryption chiffre de Trithème</a></li>
<li><a href="https://md5decrypt.net/Rot13/" title="Décryption du chiffrement ROT13">Decryption ROT13</a></li>
<li><a href="https://md5decrypt.net/Cesar/" title="Décryption du chiffrement de César">Decryption chiffre de César</a></li>
<li><a href="https://md5decrypt.net/Carre-polybe/" title="Décryption du carré de Polybe">Decryption Carré de Polybe</a></li>
<li><a href="https://md5decrypt.net/Chiffre-vigenere/" title="Encryption et décryption du chiffre de Vigenere">Decryption Chiffre de Vigenere</a></li>
<li><a href="https://md5decrypt.net/Analyse-frequence-lettres/" title="Analyse fréquentiele">Analyse fréquentielle</a></li>
</ul>
</li>
<li>
<a href="#">Téléchargements</a>
<ul id="menu_download">
<li><a href="https://md5decrypt.net/en/Password-cracking-wordlist-download/" title="Télécharger Md5decrypt awesome wordlist">Md5decrypt.net Free Wordlist</a></li>
<li><a href="https://md5decrypt.net/Unfound/sorted_unfound_md5.txt.gz" title="Télécharger Md5 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Unfound/sorted_unfound_md5.txt.gz'); return false;">Liste Md5 non trouvés</a></li>
<li><a href="https://md5decrypt.net/Sha1/Unfound/sorted_unfound_sha1.txt.gz" title="Télécharger Sha1 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Sha1/Unfound/sorted_unfound_sha1.txt.gz'); return false;">Liste Sha1 non trouvés</a></li>
<li><a href="https://md5decrypt.net/Sha256/Unfound/sorted_unfound_sha256.txt.gz" title="Télécharger Sha256 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Sha256/Unfound/sorted_unfound_sha256.txt.gz'); return false;">Liste Sha256 non trouvés</a></li>
<li><a href="https://md5decrypt.net/Sha384/Unfound/sorted_unfound_sha384.txt.gz" title="Télécharger Sha384 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Sha384/Unfound/sorted_unfound_sha384.txt.gz'); return false;">Liste Sha384 non trouvés</a></li>
<li><a href="https://md5decrypt.net/Sha512/Unfound/sorted_unfound_sha512.txt.gz" title="Télécharger Sha512 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Sha512/Unfound/sorted_unfound_sha512.txt.gz'); return false;">Liste Sha512 non trouvés</a></li>
<li><a href="https://md5decrypt.net/Md4/Unfound/sorted_unfound_md4.txt.gz" title="Télécharger Md4 non trouvés" onclick="trackOutboundLink('https://md5decrypt.net/Md4/Unfound/sorted_unfound_md4.txt.gz'); return false;">Liste Md4 non trouvés</a></li>
</ul>
</li>
<li><a href="https://md5decrypt.net/Api/" title="Api gratuite">API</a></li>
<li><a href="https://md5decrypt.net/about/" title="contactez moi">Contact</a></li>
<li><a href="https://md5decrypt.net/" title="Version française">FR</a>
<span class="blanc">|</span></li>
<li><a href="https://md5decrypt.net/en/" title="English version">EN</a></li></ul>
<div id="corps">
<h1 class="titre">Md5() <span class="vert">Encrypt</span> amp;amp; <span class="rouge">Decrypt</span></h1>
<span class="gplus"><a title="Partager via Google Plus" onclick="popUp=window.open('https://plus.google.com/share?url=https://md5decrypt.net', 'popupwindow', 'scrollbars=yes,width=800,height=400'); popUp.focus(); return false;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH4QIPDDkK1CS8cQAAA6VJREFUOMutlG9oVXUYxz/POb9zzr1d9xc3FcstnW1tlb4wKEIlgvVmJpJCEUZvqleVIQVGLDF6sYhQaBCatBcqQjgT07LQstIhDsywMpkzCnVru/t7b3e75/c7v17cebfrZsvowDkvnuf3fM/3 f6e7yPd61bZKAz5fx9BRWFIpHVh3Np/qrnxKTwvhTGVz4UhNsxiI4MTuwPxvJuKQXwfESEay0wBEnCkkIwICmvBWopWN1L8 BpidQ2IHwcz2YV4PqIUw8cO0b9zx S/jKGsaT0VL2 h972tjBw/OsnYW3Anla9tw2bH6N/9AWagj LGJyh98hmcWJwonab3/W1kLpwj7LmGeGoKW5vvTFRhh87Clg8hMlx94yUyF86R7blK30c76N 5HSKDk0hQuu5prA4RpXKtG4PVIWiNjcwEe52TU4dgDGKNsck9u0i2tSJBLH8ZVmvu2v4x8fuWA9DX2sLQkXbEdSld xSJFQ9jdYiqXIC/6G6yv11G9/8JIox3XURZozGjQ A4BeKDZah9bx44/sAKhr/8DKwlqKklvvzBgtb96iX41Usm7sRDiePilpZPGzFRHukz301qNqcIcYRoPGRwfxujx49itWbOI49S0rSeoYP7 KuzI6fUyAgK1yWorkE8/6Z5FUxqFJsdR/wAk zDmghsxFj3Jei6iDUaf2EVAONXukid T5X6jo4ALF76vGrFs9gDEH8AID02VPYMDtR6CKel3v9HCHH8/MxXJUDVhXzKFmzAVw1OaPZLEWrHgNg9JtjpE59Pd2Ejkvm/FkG2lrJ/PRDYS7zy482WFqPuC7Dhz9h4MAe0JpY3f3M3/wWqdMn6Hm3GcSZZlsAoghrNOKqyQEQQS6vXWmLGpuI1S9Dza1EPD neRAw8tVhrr zBScWnxn0lvtEUFaHDB7cj/P5p6A8yjc8S6y2Iadrx7c5R90O6I0pQgRRCqs1UXoUm0nnk/M2b8VfVIU1 j8ARxZrDLgubnEpqc6O/O07iQTVu9opWt1428AqWFxDUL MoKYO8TxsGJI530mw9F7ckjJwHea//jZ9JWUMHznw72XWyT6rk/0Mtu8l /sVokw6Z4ogTsXzm0g8tDK/P/7Y9Bxjv/48u YiyGjHSXu9 VVw3Wl5awxzN75A cYXAUidPsm15lemu3QGYKe35c3CBTQ177ok9 1m ItDuUVU24CNotl1sBYVVNXkd otTpHtvoSNIiIdEq9tmJ0x8DdyzH0Ty2rz1QAAAABJRU5ErkJggg==" alt="google plus share"></a></span>
<span class="fb"><a title="Partager via Facebook" onclick="popUp=window.open('https://www.facebook.com/sharer/sharer.php?u=https://md5decrypt.net', 'popupwindow', 'scrollbars=yes,width=800,height=400'); popUp.focus(); return false;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP gvaeTAAAACXBIWXMAAFxFAABcRQG5LWIsAAAAB3RJTUUH4QIPDDkfuflYmgAAAXhJREFUOMvtlD9PFFEUxX/3zRtYKDCBWlwKAo0NhbFCTQyFwQQLYmn4AiRUlH4IEgtrG7XYgkRsbLUgMZDYUJhQSENks5lldnb vPsoxgiaDHEHN1J4y5t3T84997wjj9Zfe4ZQhiGVHeTxeCMktAYRQdUTxenVgIPAsPb4NosL00zdGAOg28tY3WwRGKkH7L3n4Z0mTx7M/dLPC72aFHmhrNyfBUDV82H3kKPjLklaUEH2z4DVeyYnyvWjOOXVuy987yQAiEg9V6h6VM/d6IHCedxv/YEYew/zzSmcekxQMrOBYe7WJFGc4VQ5OGxTRVqqPohzys7W08p1i0JZ3nhb6YpqKUTI8urLd0779aQQgfefvmKDgKW7M4TWkOaOj/vfSDNHO0rqucKI8OLNZ/pZwb2Fm4R2hF6S87K1x0knQaTUvJbdrDVYvTD8Ayy05t F0H/gwYAbo WNGyOWS JhsBAaDS3Pnm//DPdunP0dYBHodNPro/EZDH Ga Ar1FwAAAAASUVORK5CYII=" alt="facebook share"></a></span>
<form action="https://md5decrypt.net/#answer" method="POST">
<textarea name="hash" rows="1" cols="40" id="hash_input" placeholder="Collez un ou plusieurs hashs (maximum 500)"></textarea><br>
<input id="captcha" type="text" name="captcha55987" placeholder="Email requis">
<input type="hidden" name="ahah55987" value="58302b7d8f8a11bc262ac61c7e7aac88">
<input type="submit" name="crypt" value="Crypter" class="submit">
<input type="submit" name="decrypt" value="Décrypter" class="submit">
<br>
</form>
<br><fieldset id="answer"><div id="ads_results">
<script async="" src="//www.google-analytics.com/analytics.js"></script><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Md5decrypt - reload -->
<ins class="adsbygoogle" style="display:inline-block;min-width:320px;max-width:970px;width:100%;height:90px" data-ad-client="ca-pub-7320132219000404" data-ad-slot="7703718571" data-ad-format="auto" data-adsbygoogle-status="done"><ins id="aswift_0_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:970px;background-color:transparent;"><ins id="aswift_0_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:970px;background-color:transparent;"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=samp;amp;amp;amp;s.handlers,h=Hamp;amp;amp;amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(hamp;amp;amp;amp;damp;amp;amp;amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;border:0px;width:970px;height:90px;" __idm_frm__="118111600722" width="970" height="90" frameborder="0"></iframe></ins></ins></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div><br>b2f21ccee13ffff12eec42e5ee981ea4 : <b>cahyadarma30</b><br><br>Trouvé en 0.031s<br><br>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- thematique - trouve -->
<ins class="adsbygoogle" style="display: block; height: 90px;" data-ad-client="ca-pub-7320132219000404" data-ad-slot="4380218742" data-ad-format="link" data-adsbygoogle-status="done"><ins id="aswift_1_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:970px;background-color:transparent;"><ins id="aswift_1_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:970px;background-color:transparent;"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=samp;amp;amp;amp;s.handlers,h=Hamp;amp;amp;amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(hamp;amp;amp;amp;damp;amp;amp;amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;border:0px;width:970px;height:90px;" __idm_frm__="118111600726" width="970" height="90" frameborder="0"></iframe></ins></ins></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script><br>
</fieldset><br>
<div class="fieldsetContainer_alone">
<fieldset class="right_alone">
<h2 class="last_hash_text">À propos du Md5 :</h2><br>
<div id="pub_texte">
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Md5decrypt - Texte2 -->
<ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-7320132219000404" data-ad-slot="7437303524" data-adsbygoogle-status="done"><ins id="aswift_2_expand" style="display:inline-table;border:none;height:280px;margin:0;padding:0;position:relative;visibility:visible;width:336px;background-color:transparent;"><ins id="aswift_2_anchor" style="display:block;border:none;height:280px;margin:0;padding:0;position:relative;visibility:visible;width:336px;background-color:transparent;"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=samp;amp;amp;amp;s.handlers,h=Hamp;amp;amp;amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(hamp;amp;amp;amp;damp;amp;amp;amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_2" name="aswift_2" style="left:0;position:absolute;top:0;border:0px;width:336px;height:280px;" __idm_frm__="118111600728" width="336" height="280" frameborder="0"></iframe></ins></ins></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>Le Md5 (<span style="font-style:italic;">Message Digest 5</span>) est une fonction
cryptographique qui permet de "hasher"
une séquence numérique en un <span style="font-style:italic;">hash md5</span> de 128 bits, soit 32 caractères,
et ce peu importe la longueur de la séquence originale. Ce système cryptographique est irréversible, il n'est pas possible d'obtenir la séquence originale (de décrypter) en
utilisant seulement le hash md5.
La seule façon de décrypter le hash est donc de le comparer à une base contenant les hashs md5 et leur séquence correspondante. Ce site se sert d'une base de
plus de 10.000.000.000 de hashs md5 pour vous proposer une séquence correspondante à votre hash afin de le décrypter. Une fonction de hachage de séquence
(encryption md5) est aussi
disponible, chaque mot crypté va rejoindre la
base de données. Le dictionnaire utilisé provient de tous les dictionnaires (wordlists) que j'ai pu trouver sur internet, compilés, triés, puis élargis grâce à un script de ma fabrication.
Après plusieurs jours de calculs, j'en suis arrivé à une base de données unique et pertinente.<br><br>
Le md5 n'est plus considéré comme sûr depuis un certain temps. En 2004 une collision complète a été découverte par des chercheurs chinois. Depuis cette date, les collisions
sont de plus en plus facilitées notamment par l'amélioration de la puissance de traitement des ordinateurs. Il est maintenant possible de trouver une collision
en md5 en moins de quelques minutes. Si vous voulez en apprendre plus sur les collisions md5, vous pouvez consulter <a href="http://www.mathstat.dal.ca/~selinger/md5collision/">ce lien</a>.
Il est maintenant conseillé d'utiliser le sha256, 512, bcrypt, scrypt ou whirlpool pour stocker vos mots de passe.<br>
Si toutefois vous souhaitez conserver le md5 comme fonction de hachage pour votre site, il est conseillé d'utiliser un "salt" pour le rendre plus difficile à cracker
par brute-force (et par rainbow tables). Un salt est simplement une chaîne de caractère que l'on ajoute au mot de passe fourni par l'utilisateur pour le rendre plus compliqué à casser.
Par exemple, si on utilise le mot de passe "password", qui est évidemment très facile à casser. Il suffit de lui concaténer une chaîne de caractère aléatoire créee via une fonction en php
par exemple. Imaginons une chaîne de caractère utilisant tous les caractères alphanumériques et de 14 caractères de long, par exemple a~/!c^12/*bn@(. Si on concatène ceci à
"password", cela donne a~/!c^12/*bn@(password. Il est évident que ce mot de passe sera difficilement trouvable dans une base de données en ligne. Vous pouvez aussi
séparer le salt en deux mots de taille égale et les concaténer en début et en fin de mot de passe par exemple. Par ailleurs, si vous cherchez une astuce pour créer un mot de
passe simple à se souvenir en tant qu'utilisateur, mais aussi résistant au bruteforce et aux rainbow tables, vous pouvez utiliser une phrase complète. Par exemple
jemesouviensdecemotdepassecestsur. Cela présente l'avantage d'être facile à se remémorer, et d'être très difficile à casser. Pour peu que vous ajoutiez une majuscule et un chiffre
le mot de passe sera très difficile à cracker.
</fieldset>
</div>
</div>
<span class="mentions_fr"><a href="https://md5decrypt.net/Mentions-legales/">Mentions légales </a></span>
<!--<span class="mentions_en"><a href="https://md5decrypt.net/en/Legal-mentions/">Legal mentions</a></span>-->
<span style="color: #333;font: 15px open sans, sans-serif;"> | 18,800,010 cracked hashes since 11/2015</span><span style="color: #333;font: 15px open sans, sans-serif;"> | There are 10,311,700,316 words in the database | </span><span class="mentions_fr"> <a href="https://md5decrypt.net/en/Password-cracking-wordlist-download/"> | Download Md5decrypt's Wordlist</a></span>
</iframe></html>
Комментарии:
1. Не могли бы вы пояснить, какую «строку» вы хотите получить? «b2f21ccee13ffff12eec42e5ee981ea4»?? «cahyadarma30»??. И, пожалуйста, разместите более полный HTML, потому что html, который вы опубликовали, начинается с </ div>
2. @Wonka нет, я хочу получить cahyadarma30, потому что это результат расшифровки, полный HTML-код действительно длинный, потому что он занимает всю страницу
3. хорошо, тогда опубликуйте немного больше HTML-кода, где элемент находится внутри
4. @Wonka добавил полный html, но удалил часть нижнего из-за ограничения символов
Ответ №1:
Вот ответ, моя переменная s — это строка html
from bs4 import BeautifulSoup
s = YOUR_HTML
soup = BeautifulSoup(s, "lxml")
b = soup.find("b")
print(b.text)
ВЫВОД
cahyadarma30
Комментарии:
1. ` md5.py:29: Предупреждение пользователя: Явно не указан синтаксический анализатор, поэтому я использую лучший доступный анализатор HTML для этой системы («lxml»). Обычно это не проблема, но если вы запустите этот код в другой системе или в другой виртуальной среде, он может использовать другой анализатор и вести себя по-другому. Код, вызвавший это предупреждение, находится в строке 29 файла md5.py . Чтобы избавиться от этого предупреждения, передайте дополнительный аргумент ‘features=»lxml»‘ конструктору BeautifulSoup. `
2. вы правы, я редактирую свой ответ. Если ответ в порядке, пожалуйста, отметьте его как правильный