2017-03-14 8 views
1

タイトルには、セルの内側にあるリンクのタイトルを取得しようとしています。 This isウェブサイト私は私のものを手に入れています。私はthisという質問も見ましたが、これは私の最後のカップルラインのコードを取得した場所ですが、それは私のためにそれを完了していません。BeautifulSoupを使用してリンクのタイトルを取得

私は最初の列の中のリンクのタイトルを取得しようとしています各行の最初のセル)。私はのHTMLコードをセルに入れることができますが、タイトルを取得するのには苦労しています。私はちょうどlinksセクションを印刷する場合、これは私がこれまで

URL = 'http://theescapists.gamepedia.com/Crafting' 
get_page = requests.get(URL) 
plain_text = get_page.text 
soup = BeautifulSoup(plain_text, 'html.parser') 


for table_tag in soup.find_all('table'): 
    for each_row in table_tag.find_all('tr'): 
     links = each_row.find('a', href=True) 
     title = links.get('title') 
     print(title) 
     print('') 

を作ってみたものです、各セル内のすべてのコードが印刷されます。

私はprint(type(links)) and I get a bs4.element.Tag back, which makes me think I should be able to look through for a title`タグをやったので、私を混乱させるtitle一部を、印刷するとき、私はAttributeError: 'NoneType' object has no attribute 'get'言うエラーを取得しています。各テーブルのおさらいとして

(これは少し長いように見えた)、私は各リンクの最初のセルからタイトルタグを取得したい

答えて

1

trタグは、あなたはaタグを確認してくださいすることができます

In [100]: for table_tag in soup.find_all('table'): 
    ...:  for each_row in table_tag.find_all('tr'): 
    ...:   links = each_row.find('a', href=True) 
    ...:   if links: # check before you access 
    ...:    title = links.get('title') 
    ...:    print(title) 
    ...:    print('') 
0

私はlinks.attrs['title']が何をしたいと思います。

マイコード:

for table_tag in soup.find_all('table'): 
    for each_row in table_tag.find_all('tr'): 
     links = each_row.find('a', href=True) 
     try: 
      title = links.attrs['title'] 
      print(title) 
      print('') 
     except AttributeError: 
      pass 

注:AttributeErrorは、テーブルのヘッダを処理するために起こっている、titleを持っていません。 aタグを持っていないthタグが含まれている、あなたがそれにアクセスする前に

関連する問題