2016-04-02 22 views
2

私は私の最初のpythonプロジェクトをやっていて、私は美しいもので立ち往生しています...ドキュメンテーションを読み、いくつかのことを試しても - 私はまだ立ち往生しています。beautifulsoup - 結果の文字列からリンクを抽出する方法は?

私はアマゾンの結果ページを解析しており、すべてのアイテムのリンクをスクラップしたいと考えています。

これまでのところ、私のコードは次のとおりです。私のコードで

import requests 
from bs4 import BeautifulSoup 
import time 
import re 
url = "http://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords=gtx+980+ti+-4gb+-970+-radeon+-amd" 
r = requests.get(url) 
g_data = soup.find_all("li", {"class": "s-result-item celwidget"}) 


for item in g_data: 
result = item.contents[0].find_all("a", {"class": "a-size-small a-link-normal a-text-normal"})[0] 
     print (result) 

、私は、ページ上のすべてのアイテムをターゲットに、管理(およびここには示されていないコードで、私はすでにアイテムと価格の名前をこすりするために管理)が、私は問題を抱えている実際のリンク...

ので、上記のコードの出力を廃棄している:

<a class="a-size-small a-link-normal a-text-normal" href="http://www.amazon.de/gp/offer-listing/B01062AE20"><span class="a-size-base a-color-price a-text-bold">EUR 759,00</span><span class="a-letter-space"></span>neu<span class="a-letter-space"></span><span class="a-color-secondary">(32 Angebote)</span><span class="a-letter-space"></span><span class="a-color-secondary a-text-strike"></span></a> 

だから、どのように私は入手できますかそのhttp://www.amazon.de/gp/offer-listing/B01062AE20そこに?

私が試した:

item.contents[0].find_all("a", {"class": "a-size-small a-link-normal a-text-normal"})[0].link 
item.contents[0].find_all("a", {"class": "a-size-small a-link-normal a-text-normal"})[0].href 
item.contents[0].find_all("a", {"class": "a-size-small a-link-normal a-text-normal"})[0].get.link() 
... 

しかし、誰行く...私はちょうど..どのように...愚かなだけ確かBS4は、箱から出して、これを行うことができます...文字列を解析したくありませんか?要素を取得する予め

おかげで、 Jaka

答えて

2

BeautifulSoupの属性値like accessing items in dictionariesである:

result["href"] 
result.get("href") 
+0

item.contents [0] .find_all( "A"、{ "クラス":「A -size-small a-link-normal "})[0] .get(" href ") WORKED ありがとうございました! –

+0

@ JakaM。ええ、リンクタグはあなたのケースの 'result'変数です。 – alecxe

関連する問題