私は知っている限り、Python 2.5とBeautifulSoup 3.1.0.1を実行しているマシンをそれぞれ2台持っています。python-私のhtmlを誤って報告していますか?
は、私が使用して、http://utahcritseries.com/RawResults.aspxをこすりしようとしている:私のWindowsマシンに
from BeautifulSoup import BeautifulSoup
import urllib2
base_url = "http://www.utahcritseries.com/RawResults.aspx"
data=urllib2.urlopen(base_url)
soup=BeautifulSoup(data)
i = 0
table=soup.find("table",id='ctl00_ContentPlaceHolder1_gridEvents')
#table=soup.table
print "begin table"
for row in table.findAll('tr')[1:10]:
i=i + 1
col = row.findAll('td')
date = col[0].string
event = col[1].a.string
confirmed = col[2].string
print '%s - %s' % (date, event)
print "end table"
print "%s rows processed" % i
が、私は日付やイベント名のリストです正しい結果を取得します。私のMacでは、私はしません。代わりに、私は気づい何
3/2/2002 - Rocky Mtn Raceway Criterium
None - Rocky Mtn Raceway Criterium
3/23/2002 - Rocky Mtn Raceway Criterium
None - Rocky Mtn Raceway Criterium
4/2/2002 - Rocky Mtn Raceway Criterium
None - Saltair Time Trial
4/9/2002 - Rocky Mtn Raceway Criterium
None - DMV Criterium
4/16/2002 - Rocky Mtn Raceway Criterium
を得るとき、私、私のWindowsマシン上
print row
、TRデータは、ソースHTMLとまったく同じに見えるということ。あります2番目のテーブル行のスタイルタグに注意してください。ここでは最初の2行です:私は最初の2つの行を印刷するとき、私のMac上で
<tr>
<td>
3/2/2002
</td>
<td>
<a href="Event.aspx?id=226">
Rocky Mtn Raceway Criterium
</a>
</td>
<td>
Confirmed
</td>
<td>
<a href="Event.aspx?id=226">
Points
</a>
</td>
<td>
<a disabled="disabled">
Results
</a>
</td>
</tr>
<tr style="color:#333333;background-color:#EFEFEF;">
<td>
3/16/2002
</td>
<td>
<a href="Event.aspx?id=227">
Rocky Mtn Raceway Criterium
</a>
</td>
<td>
Confirmed
</td>
<td>
<a href="Event.aspx?id=227">
Points
</a>
</td>
<td>
<a disabled="disabled">
Results
</a>
</td>
</tr>
は、スタイル情報は、TRタグから削除され、それがそれぞれのTDフィールドに移動します。なぜこれが起こっているのか分かりません。 BeautifulSoupは他のすべての日付にフォントタグを入れているので、他の日付の値にはNoneが返されます。ここではMacの出力があります:
<tr>
<td>
3/2/2002
</td>
<td>
<a href="Event.aspx?id=226">
Rocky Mtn Raceway Criterium
</a>
</td>
<td>
Confirmed
</td>
<td>
<a href="Event.aspx?id=226">
Points
</a>
</td>
<td>
<a disabled="disabled">
Results
</a>
</td>
</tr>
<tr bgcolor="#EFEFEF">
<td>
<font color="#333333">
3/16/2002
</font>
</td>
<td>
<font color="#333333">
<a href="Event.aspx?id=227">
Rocky Mtn Raceway Criterium
</a>
</font>
</td>
<td>
<font color="#333333">
Confirmed
</font>
</td>
<td>
<font color="#333333">
<a href="Event.aspx?id=227">
Points
</a>
</font>
</td>
<td>
<font color="#333333">
<a disabled="disabled">
Results
</a>
</font>
</td>
</tr>
私のスクリプトは、Windows-私は私のMacが正しく動作するために取得するために何をする必要があります下に正しい結果が表示されていますか?
クライアントのブラウザによってHTMLが異なるとお考えですか?あなたのサイトは、あなたのMacにするよりもWindowsマシンに別のHTMLを与えると言っていますか?これは珍しいことではありません。 –
いいえ、私はプリントテーブルの出力が2つの異なるマシンで異なっていると言っています。ブラウザでは、HTMLは同じように見えます。 私が実際に使っているbeautifulSoupのバージョンを確認する方法は本当にわかりません。私のMacでは、BeautifulSoup 3.1 .egg /Library/Python/2.5/site-packagesにあります –