これが尋ねられたと思われる場合は申し訳ありませんが、関連する質問を読みましたが、Python にまったく慣れていないため、この要求をきれいな方法で記述する方法が見つかりませんでした。
今のところ、この最小限の Python コードがあります。
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
import re
import urllib2
br = Browser()
br.open("http://www.atpworldtour.com/Rankings/Singles.aspx")
filename = "rankings.html"
FILE = open(filename,"w")
html = br.response().read();
soup = BeautifulSoup(html);
links = soup.findAll('a', href=re.compile("Players"));
for link in links:
print link['href'];
FILE.writelines(html);
href に単語 player が含まれるすべてのリンクを取得します。
解析する必要がある HTML は次のようになります。
<tr>
<td>1</td>
<td><a href="/Tennis/Players/Top-Players/Roger-Federer.aspx">Federer, Roger</a> (SUI)</td>
<td><a href="/Tennis/Players/Top-Players/Roger-Federer.aspx?t=rb">10,550</a></td>
<td>0</td>
<td><a href="/Tennis/Players/Top-Players/Roger-Federer.aspx?t=pa&m=s">19</a></td>
</tr>
1 にはプレイヤーのランクが含まれます。このデータを辞書で取得できるようにしたいと思います。
- ランク
- プレイヤーの名前
- 詳細ページへのリンク (こちら /Tennis/Players/Top-Players/Roger-Federer.aspx)
いくつかの指針を教えていただけますか、それともコードを作成するのに十分簡単であるかどうかを教えてください。Beautiful Soup でのリクエストの作成方法がわかりません。
アンソニー