2017-11-12 4 views
0

問題:私のセレニウムスクラップスクリプトは、私がツイートのIDを取得しない、おそらく私がそれらを要求する方法の問題のためです。セレン付ids?

詳細:

みなさん、こんにちは、私はTwitterの検索に入り、古いツイートのIDを取得しますここで見つけるスクリプト(https://github.com/bpb27/twitter_scraping/blob/master/scrape.py)を持っています。私は2つの部分変更されているこのスクリプトから

user = 'realdonaldtrump' 
start = datetime.datetime(2010, 1, 1) # year, month, day 
end = datetime.datetime(2016, 12, 7) # year, month, day 

user = 'metoo' 
start = datetime.datetime(2017, 10, 24) # year, month, day 
end = datetime.datetime(2017, 10, 25) # year, month, day 

def form_url(since, until): 
    p1 = 'https://twitter.com/search?f=tweets&vertical=default&q=from%3A' 
    p2 = user + '%20since%3A' + since + '%20until%3A' + until + 'include%3Aretweets&src=typd' 
    return p1 + p2 

となっているが

def form_url(since, until): 
    p1 = 'https://twitter.com/search?l=fr&q=%23' 
    p2 = user + '%20since%3A' + since + '%20until%3A' + until + 'include%3Aretweets&src=typd' 
    return p1 + p2 
0となっています

私の変更後、スクリプトは正しく検索し、すべてのつぶやきを繰り返しますが、IDは取得しません。ここで

は、要求一部です:

for tweet in found_tweets: 
    try: 
     id = tweet.find_element_by_name(id_selector).get_attribute('href').split('/')[-1] 
     ids.append(id) 
    except StaleElementReferenceException as e: 
     print('lost element reference', tweet) 

任意のアイデアは、この問題を解決する方法?

答えて

0

これは、htmlの更新に関連する可能性があります。あなたは何のhref属性が存在しない見ることができるようにあなたのコードtweet.find_element_by_name(id_selectorは)

<a href="/xxx/status/928601524380536xxx" class="tweet-timestamp js-permalink js-nav js-tooltip" title="04:33 - 9 nov. 2017" data-conversation-id="928601524380536xxx"><span class="_timestamp js-short-timestamp " data-aria-label-part="last" data-time="xxx" data-time-ms="xxx" data-long-form="true">9 nov.</span></a> 

を返す必要があります。 hrefを取得する代わりに、各ツイートごとに「data-conversation-id」属性を取得する必要があります。一方

id = tweet.find_element_by_name(id_selector)['data-conversation-id'] 

、私はつぶやき[「データ項目IDが 『] IDを与える必要があるため、このid_selector(』 .time a.tweetタイムスタンプ」)を使用しないことを好むだろう。

<li class="js-stream-item stream-item stream-item" data-item-id="928601524380536xxx" id="stream-item-tweet-928601524380536xxx" data-item-type="tweet"> 

カテゴリーで探す、

+0

あなたが正しい、解体はつらい時、それのまわりで私の頭を取得した、私の弱点です。どうもありがとう! :) – blacksatius