2016-10-17 22 views
-7

実行時にエラーが発生します。BeautifulSoupエラー

import requests 
from bs4 import BeautifulSoup 

url = "http://sport.citifmonline.com/" 
url_page_2 = "url" + "2016/10/15/chelsea-3-0-leicester-city-dominant-blues-comfortable-against-champions-photos/" 
r = requests.get(url) 

soup = BeautifulSoup(r.content, "html5lib") 

links = soup.find_all("a") 

for link in links: 
    print "<a href='%s'>%s</a>" %(link.get("href"), link.text) 

g_data = soup.find_all("div", {"class": "wrapper"}) 

for item in g_data: 
    articles = item.content[0].find_all("a", {"class": "cat-box-content"})[0].text 
    try: 
     print item.contents[1].find_all("h3", {"class": "post-box-title"})[0].text 
    except: 
     pass 
+4

どのようなエラーが表示されるのですか?find_allを直接電話する必要があります。トレースバックを投稿してください。 – alecxe

+0

誰もがあなたのコードを実行できるわけではありません。問題を解決するために何をしようとしているのかを正確に示している場合は、依然として助けになる可能性があります。 – Daniel

+0

ファイル ""、2行目 印刷 "%s" %(link.get( "HREF")、link.text) ^ IndentationErrorは:私はこのトレースバックを持ってインデントエラーを修正した後、インデントブロック@Daniel – Nyamedorba

答えて

0

あなたが(例えばpip install html5libで)html5libをインストールしていない場合は、エラーを取得せずに、このパーサを使用することはできません。あなたはそれをインストールすることもできます。またdocumentation of BeautifulSoupに記載されている代わりに"html.parser"のために - ちょうどすべてのエラーを避けるために:あなたは添字化ではないインデックスに何かしようとしているので

soup = BeautifulSoup(r.content, "html.parser") 

さらに、あなたの内/秒forループの最初の行はTypeErrorをスローします(リストなどではないので、詳細はhereを参照してください)。実際には、既存のものでもありません。あなたがアクセスしようとしているプロパティcontentNoneです(もちろん添え字はありません)。

item.find_all(...) 
+0

建設的な批判のないInb4無意味なダウンボート。 :) – mxscho

+0

おそらく 'html5lib'が有効なパーサーであるため、あなたの答えは単に間違っているので、答えの第2部分も間違っています。 –