Переменная url
отличается в ваших сценариях.
Рядом для сравнения:
url = 'www.signalpeptide.de/index.php?sess=&m=listspdb_bacteria&s=details&id=1000&listname=' # pandas
url = 'http://www.signalpeptide.de/index.php?sess=&m=listspdb_bacteria&s=details&id=1000&listname=' # BeautifulSoup
Я подозреваю, что бит http://
важен для панд, чтобы распознать его как URL, а не сам HTML. В конце концов, pandas.read_html
динамически интерпретирует аргумент как , описанный в документации
URL, файлоподобный объект или необработанная строка, содержащая HTML. Обратите внимание, что lxml принимает только протоколы http, ftp и url для файлов. Если у вас есть URL, начинающийся с «https», вы можете попробовать удалить «s».
Где конкретно часть Если у вас есть URL-адрес, начинающийся с «https», вы можете попробовать удалить «s» , и я полагаю, что http://
важно, чтобы он знал, что это ссылка в отличие от «файлового объекта» или необработанного HTML.
Если ошибка превышает максимальное количество повторных попыток, вам, вероятно, нужно реализовать requests.session
с заголовками. Предыдущий код, который я сделал с этим, выглядел так:
import requests
s = requests.session()
s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
res = s.get('your_url')
В этот момент вы сможете интерпретировать объект res
так же, как и обычный объект requests.get()
(вы можете вызывать такие методы, как .text
и т. Д.). Я не слишком уверен, как работает s.headers
, просто из другого SO поста я скопировал и исправил свой скрипт!
обновление
Часть сообщения об ошибке из вашего последнего блока кода
ssl.CertificateError: имя хоста «www.signalpepti.de» не соответствует ни одному из «www.kg13.art», «www.thpr.net»
Это означает, что их сертификат SSL недействителен, и https
, вероятно, не будет работать, потому что хост не может быть проверен. Я настроил его на http
и отобразил полученный HTML-код:
from bs4 import BeautifulSoup
import requests
s = requests.session()
s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
res = s.get('http://www.signalpeptide.de/index.php?sess=&m=listspdb_bacteria&s=details&id=2&listname=')
print(res.text)
Результаты:
C:\Users\rparkhurst\PycharmProjects\Workspace\venv\Scripts\python.exe C:/Users/rparkhurst/PycharmProjects/Workspace/new_workspace.py
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Signal Peptide Database</title>
<link rel="stylesheet" href="css/foundation.css">
<link href='http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css' rel='stylesheet' type='text/css'>
<link href="css/custom.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="top-bar">
<div class="row">
<div class="top-bar-left">
<div class="top-bar-title">
<span data-responsive-toggle="responsive-menu" data-hide-for="medium">
<span class="menu-icon dark" data-toggle></span>
</span>
<a href="./"><img src="img/logo.jpg" alt="logo" id="logo"></a>
</div>
</div>
<div class="top-bar-right">
<h3 class="hide-for-small">Signal Peptide Website</h3>
<div id="responsive-menu">
<ul class="dropdown menu" data-dropdown-menu>
<li><a href="./?m=myprotein">Search my Protein</a></li>
<li><a href="./?m=searchspdb">Advanced Search</a></li>
<li><a href="./?m=listspdb">Database Search</a></li>
<li><a href="./?m=references">References</a></li>
<li><a href="./?m=hints">Hints</a></li>
<li><a href="./?m=links">Links</a></li>
<li><a href="./?m=imprint">Imprint</a></li>
</ul>
</div>
</div>
</div>
</div>
<br>
<div class="row columns">
<div class="content">
<span class="headline">Signal Peptide Database - Bacteria</span><br><br>
<form action="index.php" method="post"><input type="hidden" name="sess" value="">
<input type="hidden" name="m" value="listspdb_bacteria">
<input type="hidden" name="id" value="2">
<input type="hidden" name="a" value="save">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="3" class="tabhead"> <b>Entry Details</b></td></tr>
<tr height="23">
<td class="highlight">ID</td>
<td class="highlight" width="50"> </td>
<td class="highlight">2</td>
</tr>
<tr height="23">
<td class="highlight">Source Database</td>
<td class="highlight" width="50"> </td>
<td class="highlight">UniProtKB/Swiss-Prot</td>
</tr>
<tr height="23">
<td class="highlight">UniProtKB/Swiss-Prot Accession Number</td>
<td class="highlight" width="50"> </td>
<td class="highlight">A6X5T5 (Created: 2009-01-20 Updated: 2009-01-20)</td>
</tr>
<tr height="23">
<td class="highlight">UniProtKB/Swiss-Prot Entry Name</td>
<td class="highlight" width="50"> </td>
<td class="highlight"><a target="_new" class="bblack" href="http://www.uniprot.org/uniprot/14KL_OCHA4">14KL_OCHA4</a></td>
</tr>
<tr height="23">
<td class="highlight">Protein Name</td>
<td class="highlight" width="50"> </td>
<td class="highlight">Lectin-like protein BA14k</td>
</tr>
<tr height="23">
<td class="highlight">Gene</td>
<td class="highlight" width="50"> </td>
<td class="highlight">Oant_3884</td>
</tr>
<tr height="23">
<td class="highlight">Organism Scientific</td>
<td class="highlight" width="50"> </td>
<td class="highlight">Ochrobactrum anthropi (strain ATCC 49188 / DSM 6882 / NCTC 12168)</td>
</tr>
<tr height="23">
<td class="highlight">Organism Common</td>
<td class="highlight" width="50"> </td>
<td class="highlight"></td>
</tr>
<tr height="23">
<td class="highlight">Lineage</td>
<td class="highlight" width="50"> </td>
<td class="highlight">Bacteria<br> Proteobacteria<br> Alphaproteobacteria<br> Rhizobiales<br> Brucellaceae<br> Ochrobactrum<br></td>
</tr>
<tr height="23">
<td class="highlight">Protein Length [aa]</td>
<td class="highlight" width="50"> </td>
<td class="highlight">151</td>
</tr>
<tr height="23">
<td class="highlight">Protein Mass [Da]</td>
<td class="highlight" width="50"> </td>
<td class="highlight">17666</td>
</tr>
<tr height="23">
<td class="highlight">Features</td>
<td class="highlight" width="50"> </td>
<td class="highlight"><table><tr><td><b>Type</b></td><td><b>Description</b></td><td><b>Status</b></td><td><b>Start</b></td><td><b>End</b></td></tr><tr><td class="w"><font color="red">signal peptide</font> </td><td class="w"><font color="red"></font> </td><td class="w"><font color="red">potential</font> </td><td class="w"><font color="red">1</font> </td><td class="w"><font color="red">26</font></td></tr><tr><td class="w"><font color="blue">chain</font> </td><td class="w"><font color="blue">Lectin-like protein BA14k</font> </td><td class="w"><font color="blue"></font> </td><td class="w"><font color="blue">27</font> </td><td class="w"><font color="blue">151</font></td></tr><tr><td class="w"><font color="green">transmembrane region</font> </td><td class="w"><font color="green"></font> </td><td class="w"><font color="green">potential</font> </td><td class="w"><font color="green">83</font> </td><td class="w"><font color="green">103</font></td></tr></table></td>
</tr>
<tr height="23">
<td class="highlight">SP Length</td>
<td class="highlight" width="50"> </td>
<td class="highlight">26</td>
</tr>
<tr valign="top">
<td class="highlight"></td><td class="highlight" width="50"> </td><td class="highlightfixed">----+----1----+----2----+----3----+----4----+----5</td></tr><tr valign="top">
<td class="highlight">Signal Peptide</td><td class="highlight" width="50"> </td><td class="highlightfixed">MNIFKQTCVGAFAVIFGATSIAPTMA</td></tr><tr valign="top">
<td class="highlight">
Sequence</td><td class="highlight" width="50"> </td><td class="highlightfixed"><font color="red">MNIFKQTCVGAFAVIFGATSIAPTMA</font><font color="blue">APLNLERPVINHNVEQVRDHRRPP<br>RHYNGHRPHRPGYWNGHRGYRHYRHGYRRYND</font><font color="green">GWWYPLAAFGAGAIIGGA<br>VSQ</font><font color="blue">PRPVYRAPRMSNAHVQWCYNRYKSYRSSDNTFQPYNGPRRQCYSPYS<br>R</td></tr><tr valign="top">
<td class="highlight">
Original</td><td class="highlight" width="50"> </td><td class="highlightfixed">MNIFKQTCVGAFAVIFGATSIAPTMAAPLNLERPVINHNVEQVRDHRRPP<br>RHYNGHRPHRPGYWNGHRGYRHYRHGYRRYNDGWWYPLAAFGAGAIIGGA<br>VSQPRPVYRAPRMSNAHVQWCYNRYKSYRSSDNTFQPYNGPRRQCYSPYS<br>R</td></tr><tr valign="top">
<td class="highlight"></td><td class="highlight" width="50"> </td><td class="highlightfixed">----+----1----+----2----+----3----+----4----+----5</td></tr><tr height="23">
<td class="highlight">Hydropathies</td>
<td class="highlight" width="50"> </td>
<td class="highlight"><a href="./hydropathy/hydropathy.php?id=2" target="_new"><img src="./hydropathy/hydropathy.php?id=2" border="0" width="600"></a></td>
</tr>
<tr>
<td colspan="3" class="nohighlight"> </td>
</tr>
<tr>
<td colspan="3" class="tabhead" align="center"><input class="button" type="reset" value="Back" onclick="history.back(-1);"></td>
</tr>
</table>
</form></div>
<hr>
<div class="row">
<div class="small-4 medium-3 columns"><a href="./">Home</a> <a href="./?m=imprint">Imprint</a></div>
<div class="small-8 medium-9 columns text-right">
© 2007-2017 <a href="mailto:kapp@mpi-cbg.de">Katja Kapp</a>, Dresden & <a href="http://www.thpr.net/">thpr.net e. K.</a>, Dresden, Germany, last update 2010-06-11
</div>
</div><br><br>
<script src="js/vendor/jquery.js"></script>
<script src="js/foundation.js"></script>
<script>
$(document).foundation();
</script>
</body>
</html>
Process finished with exit code 0
Похоже, это решает ваши проблемы.