2016-09-22 10 views
0

私はビルドクローラをしようとしています、と私は私のコードがあると私は、Python 3.5Pythonの例外TypeErrorトレースバック(最後の最新の呼び出し)

を使用しています そのページ上のすべてのリンクを印刷したい

import requests 
from bs4 import BeautifulSoup 
def crawler(link): 
    source_code = requests.get(link) 
    source_code_string = str(source_code) 
    source_code_soup = BeautifulSoup(source_code_string,'lxml') 
    for item in source_code_soup.findAll("a"): 
     title = item.string 
     print(title) 

crawler("https://www.youtube.com/watch?v=pLHejmLB16o") 

は、私はあなたが意図があるだけで、あなたは小さなミスをしているリンクのタイトルを印刷している場合は、この

TypeError         Traceback (most recent call last) 
<ipython-input-13-9aa10c5a03ef> in <module>() 
----> 1 crawler('http://archive.is/DPG9M') 

TypeError: 'module' object is not callable 
+0

のようなファイルを呼び出している場合、あなたはそのエラーを取得してはならない、あなたの 'crawler'の名前を変更しようとしています方法? –

+0

はい、私は "猫"に "クローラー"を変更しましたが、それでも同じ間違い – Travis

答えて

2

のようなエラーが、行を置き換え得る:

source_code_string = str(source_code) 

コードは正常に見えるし、実行されていることから、

source_code_string = source_code.text 

別に使用。 が

import requests 
from bs4 import BeautifulSoup 
def crawler(link): 
    source_code = requests.get(link) 
    source_code_string = source_code.text 
    source_code_soup = BeautifulSoup(source_code_string,'lxml') 
    for item in source_code_soup.findAll("a"): 
     title = item.string 
     print(title) 


crawler("https://www.youtube.com/watch?v=pLHejmLB16o") 

そして、そのエラーに関するファイルweb_crawler_v1.pyを呼び出すことができますあなたは正しくこの

python3 wen_crawler_v1.py 
+0

それは動作します! – Travis

+0

私は別の質問があります。私はJupyterノートブックを使用しています。ノートブックRootPythonにこれらのコードを入力すると動作します。しかし、新しいpyファイル(test.py)を作成し、同じコードを入力して "import test.py"と入力すると、動作しません。その理由は分かりますか? – Travis

+0

私はそれを試して、それは動作しますが、あなたがそれを呼び出すのと同じ場所にあるファイルですか?なぜなら、そうでないと問題になる可能性があるからです。 –

関連する問題