2016-11-22 26 views
0

私は掻き集めているウェブサイトからhref属性を取得しようとしています。マイスクリプト:Python/BeautifulSoup: 'href'属性を取得する

from bs4 import BeautifulSoup 
import requests 
import csv 


i = 1 
for i in range(1, 2, 1): 
    i = str(i) 
    baseurl = "https://www.quandoo.nl/amsterdam?page=" + i 
    r1 = requests.get(baseurl) 
    data = r1.text 
    soup = BeautifulSoup(data, "html.parser") 
    for link in soup.findAll('span', {'class', "merchant-title", 'itemprop', "name", 'a'}): 
     print link 

は、次の値を返します。

<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/ristorante-due-napoletani-5644" itemprop="url">Ristorante Due Napoletani</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/yamyam-4850" itemprop="url">YamYam</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/the-golden-temple-5278" itemprop="url">The Golden Temple</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/sampurna-4609" itemprop="url">Sampurna</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/motto-sushi-25471" itemprop="url">Motto Sushi</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/takumi-ya-8171" itemprop="url">Takumi-Ya</a></span> 
<span class="merchant-title" itemprop="name"><a href="https://www.quandoo.nl/place/casa-di-david-19167" itemprop="url">Casa di David</a></span> 

私は何の問題が出て引っ張っていない持っている(これは私が全体の出力であなたを砲撃したくなかった、それの一部でしかありません。)レストラン名の文字列ですが、href属性だけを与える構成は見つかりません。そして、.strip()メソッドは私の現在の設定では実現可能ではないようです。どんな助けも素晴らしいだろう。

+0

これは役立つかもしれないhttp://stackoverflow.com/a/5815888/5811078 – zipa

+0

私はこのエラー TypeError例外ました:期待される文字列をか – dtrinh

+0

持っをバッファ'str()'で変換しようとしましたか? – zipa

答えて

1

それは私の作品は、このコードを試してみてください。

from bs4 import BeautifulSoup 
import requests 
import csv 

import re 


i = 1 
for i in range(1, 2, 1): 
    i = str(i) 
    baseurl = "https://www.quandoo.nl/amsterdam?page=" + i 
    r1 = requests.get(baseurl) 
    data = r1.text 
    soup = BeautifulSoup(data, "html.parser") 
    for link in soup.findAll('span', {'class', "merchant-title", 'itemprop', "name", 'a'}): 
     match = re.search(r'href=[\'"]?([^\'" >]+)', str(link)).group(0) 
     print match 
+0

ありがとうございました!私は以前この設定を試しました。しかし、私はページ上のレストランのリンクを分離しようとしています。それらは私がさらに掻きする必要がある唯一のものです。どのようにページ上のレストランだけで、HREFを分離するためのアイデアですか? – dtrinh

+0

あなたはとても役に立ちました!ありがとうございました! – dtrinh

+0

あなたは歓迎です:) – zipa