2017-04-11 5 views
1

私はbeautifulsoupを使ってチャットメッセージをスクラップしますが、印刷するように求められたら、出力せず、コード0で終了します。beautifulsoup4見つからないHTML

# import libraries, pip install beautifulsoup4. 
import urllib2 
from bs4 import BeautifulSoup 
import csv 
from datetime import datetime 

quote_page = 
'https://robertsspaceindustries.com/spectrum/community/SC/lobby/8' 

#finding 
page = urllib2.urlopen(quote_page) 
soup = BeautifulSoup(page, 'html.parser') 
name = soup.find('messages-items', attrs={'message-item status-default': 
'content'}) 
print name 

#logging 
with open('index.csv', 'a') as csv_file: 
    writer = csv.writer(csv_file) 
    writer.writerow([name, datetime.now()]) 

答えて

1

クロームネットワークツールやFirebugのをoppeningときに密接に見れば、あなたはあなたのウェブサイトはあなたが望むデータをフェッチするWebサービスを要求していることに気づくでしょう。

次の3つのパラメータでのポストをシミュレートする必要があります:最後のidは、新しいメッセージを取得するために受信され

  • before
  • lobby_idフェッチする現在のロビーです。
  • フェッチするためにどのように多くのメッセージがある
  • size

それはあなただけで、あなたが望む結果を得るために解析する必要のあるJSONオブジェクトを返します。

import requests 
import json 

response = requests.post('https://robertsspaceindustries.com/api/spectrum/message/history', data = {'before': None, 'lobby_id':'8', 'size':'50'}) 
lobby_data = json.loads(response.content.decode("utf-8")) 

for comment in lobby_data["data"]["messages"]: 
    print ("%s: %s" % (comment["member"]["displayname"], comment["content_state"]["blocks"][0]["text"])) 

出力:

Antinov: Esp since spectrum doesn't even open a new tab to view large images.... 
Sir Quentin Reginald Watson: write a suggestion about it 
Antinov: As if CIG listens to those. 
Sir Quentin Reginald Watson: you will never know if you don't try 
.... 
をここで

は一例です
関連する問題