2017-07-16 5 views
0

Wenn ich durch den folgenden Prozess gehen:Python 3.5 beautifulsoup derzeit keine Seite lesen

die oben genannten Schritte nimmt mich auf die folgende uRL: 012.332.

wo Sie die Daten sehen können.

Allerdings, wenn ich den folgenden Code verwenden:

from urllib2 import urlopen 
from BeautifulSoup import BeautifulSoup 
url = 'http://propaccess.traviscad.org/clientdb/Property.aspx?prop_id=312669' 
soup = BeautifulSoup(urlopen(url).read()) 
print soup 

ich den Fehler:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
     "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-type" content="text/html;charset=utf-8" /> 
<title>Travis Property Search</title> 
<style type="text/css"> 
     body { text-align: center; padding: 150px; } 
     h1 { font-size: 50px; } 
     body { font: 20px Helvetica, sans-serif; color: #333; } 
     #article { display: block; text-align: left; width: 650px; margin: 0 auto; } 
     a { color: #dc8100; text-decoration: none; } 
     a:hover { color: #333; text-decoration: none; } 
    </style> 
</head> 
<body> 
<div id="article"> 
<h1>Please try again</h1> 
<div> 
<p>Sorry for the inconvenience but your session has either timed out or the server is busy handling other requests. You may visit us on the the following website for information, otherwise please retry your search again shortly:<br /><br /> 
<a href="http://www.traviscad.org/">Travis Central Appraisal District Website</a> </p> 
<p><b><a href="http://propaccess.traviscad.org/clientdb/?cid=1">Click here to reload the property search to try again</a></b></p> 
</div> 
</div> 
</body> 
</html> 

ich andere Wege versucht haben, Cookies zu importieren, usw., aber ich bin nicht in der Lage das lesen Daten mit Python.

+0

Sie legen einen Sitzungscookie fest, wenn Sie 'http: //propaccess.traviscad.org/clientdb/? Cid = 1' besuchen. Du brauchst das, um die andere URL zu bekommen. Der Cookie hat folgende Form: ASP.NET_SessionId = random_string –

+0

Wie lege ich den Sitzungscookie mit Python fest? Haben Sie einen Beispielcode, auf den ich mich beziehen kann? – Zanam

Antwort

1

versuchen, etwas wie folgt aus:

import requests 
from bs4 import BeautifulSoup 

s = requests.session() 
r = s.get('http://propaccess.traviscad.org/clientdb/?cid=1') 
r2 = s.get('http://propaccess.traviscad.org/clientdb/Property.aspx?prop_id=312669') 

soup = BeautifulSoup(r2.text, 'html.parser') 
print(soup.prettify()) 

Dies wird die Seite packen, der die Sitzung festgelegt und requests.session werden die Sitzungsdaten speichern. Bei der nächsten Anfrage wird das Sitzungscookie verwendet und Sie erhalten Ihren Text. Sie sollten diesen Text zum Parsen an BeautifulSoup übergeben können.