2017-10-21 20 views
0

私はGoogleホームページで単語を数えようとしています。しかし、私は初期段階でAttributeErrorを得ました。Python-AttributeError: 'NoneType'オブジェクトに属性 'lower'がありません。

私のコードがある - >

import requests 
from bs4 import BeautifulSoup 
import operator 

def main(url): 
    word_list=[] 
    source_code=requests.get(url).text 
    soup=BeautifulSoup(source_code,'lxml') 
    for post_text in soup.findAll('a'): 
     content=post_text.string 
     words=content.lower().split() 
     for each_word in words: 
      print(each_word) 
      word_list.append(each_word) 

main('https://www.google.co.in/?gfe_rd=cr&dcr=0&ei=2-nqWavnB4WN8Qf4n7eQAw') 

私の出力がある - >

images 
maps 
play 
youtube 
news 
gmail 
drive 
Traceback (most recent call last): 
    File "word_freq.py", line 18, in <module> 
    main('https://www.google.co.in/?gfe_rd=cr&dcr=0&ei=2-nqWavnB4WN8Qf4n7eQAw') 
    File "word_freq.py", line 13, in main 
    words=content.lower().split() 
AttributeError: 'NoneType' object has no attribute 'lower' 
+0

を ''コンテンツは、コンテンツ= post_text後NONE'ない場合。すべての 'a'タグがテキスト文字列を持つ必要はないからです。 – ZdaR

答えて

0
  1. あなたは

    スープを必要とするので、あなたがHTMLでWebページを解析しています= BeautifulSoup(source_code、 'html.parser')

  2. 文字列は任意のタグの内容を取得するための不正な属性で、テキストを使用します。あなたが追加する必要があり

    コンテンツ= post_text.text

関連する問題