2017-05-23 19 views
0

を読み取ることができない:Beautifulsoupは、私は次のことをしようとしていますページ

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 

上記print文は次のことを示しています

<!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> 

私は、同じコンピュータ上のブラウザを通じてしかしURLにアクセスすることができていますサーバーは私のIPを確実にブロックしていません。自分のコードに何が間違っているのか分かりません。

答えて

2

最初にいくつかのクッキーを取得し、次にURLを訪問する必要があります。このものの
urllib2CookieJarで行うことができ、私はrequestsをお勧めします。標準のlibない

import requests 
from BeautifulSoup import BeautifulSoup 

url1 = 'http://propaccess.traviscad.org/clientdb/?cid=1' 
url = 'http://propaccess.traviscad.org/clientdb/Property.aspx?prop_id=312669' 
ses = requests.Session() 
ses.get(url1) 
soup = BeautifulSoup(ses.get(url).content) 
print soup.prettify() 

requestsことを、あなたはinsallそれにあります。あなたがurllib2を使用したい場合は は:

import urllib2 
from cookielib import CookieJar 

url1 = 'http://propaccess.traviscad.org/clientdb/?cid=1' 
url = 'http://propaccess.traviscad.org/clientdb/Property.aspx?prop_id=312669' 
cj = CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
opener.open(url1) 
soup = BeautifulSoup(opener.open(url).read()) 
print soup.prettify() 
+0

'BeautifulSoup輸入BeautifulSoup'からそれはBS4輸入BeautifulSoup'から'すべきではありませんか? –

+1

@MD。 Khairul Basarはい、それは私が通常それをインポートする方法ですが、それはいずれの方法でも動作します。 –

+0

なぜあなたはクッキーをインポートする必要がありましたか?他の例クッキーを必要としていないことを試しました – Zanam

関連する問題