私はPythonを初めて使用し、最初のWebスクレーパーの1つを構築しようとしています。ページに移動し、一連のサブページを開いて、ページ上の特定のリンク(IDを含む)を見つけてから、リンクデータを印刷したいと思います。今、私はエラーを受け取ります:'リストインデックスはstrではなく整数でなければなりません'、これは私が(少なくとも)コードの最後の行で何か間違ったことをしていることを意味します。
私が本当に確信が持てないのは、特定のリンクからhrefデータを取得して解析するために何をする必要があるかということです。残りは機能していると思います(サブページの読み込み)。スクレーパーは(想定される)デンマークのコミューンのすべてのURLを取得して印刷するため、印刷の最初の行は次のようになります。
http://www.albertslund.dk(さらに97をフォロー)
とにかく、ここにコードがあります-私が間違っていることを誰かが教えてくれることを願っています。よろしくお願いします。
from BeautifulSoup import BeautifulSoup
from mechanize import Browser
f = open("kommuneadresser.txt", "w")
br = Browser()
url = "https://bdkv2.borger.dk/foa/Sider/default.aspx?fk=22&foaid=11541520"
page = br.open(url)
html = page.read()
soup = BeautifulSoup(html)
link = soup.findAll('a')
kommunelink = link[21:116]
#we create a loop - for every single kommunelink in the list,
#'something' will happen
for kommune in kommunelink:
#the link-part is saved as a string
kommuneurl = kommune['href']
#we construct a new url from two strings
fuldurl = "https://bdkv2.borger.dk/" + kommuneurl
#we open the page and save it in a variable
kommuneside = br.open(fuldurl)
#we read the page
html2 = kommuneside.read()
#we handle the page in beautifulsoup
soup2 = BeautifulSoup(html2)
#we find a specific link on the page
hjemmesidelink = soup2.findAll('a', attras={'ID':"uscAncHomesite"})
print hjemmesidelink['href']