2016-08-29 10 views
1

私はウェブサイトのタイトルを取得しようとしていました。 だから、私は、これは完璧に動作し、このテキストを傷つけることができません

sys.stdout = open("test_data.txt", "w") 
    url2 = "https://www.google.com/" 
    headers = { 
     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'} 
    req = urllib2.Request(url2, None, headers) 
    req.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8') 
    html = urllib2.urlopen(req, timeout=60).read() 
    soup = BeautifulSoup(html) 
    # Extract title 
    list1 = soup.title.string 
    print list1.encode('utf-8') 

を行うには、このスニペットを使用し、タイトルとしてグーグルを与え、test_data.txtに出力をフラッシュします。

しかし、私はWebサービスと同じコードを実行しようとすると動作しません。私は空のテキストファイルを取得します。 私は私がもっと不安になりましたもう一つは、私はmsn.comのためのWebサービスを実行するとき、それは両方のスニペットに適していますです、私の地元のhttp://0.0.0.0:8881/get_title

from bottle import route, run, request 

@route('/get_title') 
def get_title(): 
    sys.stdout = open("test_data.txt", "w") 
    url2 = "https://www.google.com/" 
    headers = { 
     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'} 
    req = urllib2.Request(url2, None, headers) 
    req.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8') 
    html = urllib2.urlopen(req, timeout=60).read() 
    soup = BeautifulSoup(html) 
    # Extract title 
    list1 = soup.title.string 
    print list1.encode('utf-8') 

if __name__ == "__main__": 
    run(host='0.0.0.0', port=8881, debug=True) 

に、このWebサービスを実行するには、このURLを打っています( Webサービスさえも)。

ご協力いただきありがとうございます!

答えて

-2

このフラスカですか?その場合は、ユーザーに送信する文字列をreturnにする必要があります。 printステートメントは、Webサーバーのログに書き込みます。 get_title関数の最後の行を次のように置き換えます。

return list1.encode('utf-8') 
+0

しかし、それがmsn.comのような他のURLで動作する理由は何ですか? – x0v

関連する問題