2017-06-02 3 views
0

Ich frage mich, ob es Möglichkeiten gibt, Twitter ohne ihre API zu crawlen? Ich habe versucht, ihre API zu verwenden, und es war großartig. Aber ich würde gerne fragen, ob es Alternativen gibt? Da der Crawler, an dem ich arbeite, umhergeht, möchte ich nicht, dass meine Token-Schlüssel zwischen ihnen geteilt werden. Ich möchte auch nicht, dass jeder von ihnen den Aufwand der Erstellung eines Dev-Accounts durchläuft und so weiter.Python-Twitter API

Der Crawler, den ich mit twitter API erstellt habe, kann viele Tweets abrufen. Und der Crawler, den ich ohne erstellt habe, konnte nur um 10 crawlen, da andere Tweets außerhalb des HTML waren.

Ich verwende Python 3,6

def spider(targetname, DOMAIN): 
for item in g_data: 
    try: 
     name = item.find_all("strong", {"class": "fullname show-popup-with-id "})[0].text 
     username = item.find_all("span", {"class": "username u-dir"})[0].text 
     post = item.find_all("p", {"class": "TweetTextSize TweetTextSize--normal js-tweet-text tweet-text"})[0].text 
     retweetby = item.find_all("a", {"href": "/"+targetname})[0].text 
     subdatas = item.find_all('div', {'class':'ProfileTweet-actionCountList u-hiddenVisually'}) 
     for subdata in subdatas: 
      replies = subdata.find_all("span", {"class": "ProfileTweet-actionCountForAria"})[0].text 
      retweets = subdata.find_all("span", {"class": "ProfileTweet-actionCountForAria"})[1].text 
      likes = subdata.find_all("span", {"class": "ProfileTweet-actionCountForAria"})[2].text 
     datas = item.find_all('a', {'class':'tweet-timestamp js-permalink js-nav js-tooltip'}) 
     for data in datas: 
      link = DOMAIN + data['href'] 
      date = data['title'] 
     if link in open(crawledfile).read(): 
      pass 
     else: 
      append_to_crawled(crawledfile, name, username, post, link, replies, retweets, likes, retweetby, date) 
     output(name, username, post, link, replies, retweets, likes, retweetby, date) 
    except: 
     pass 
+0

KEINESFALLS, um twitter's API zu umgehen. –

+0

den Code für Ihren Crawler ohne die Twitter-API – TheDarkKnight

+0

@MrSam gut, können Sie Selenium und PhantomJS verwenden. – TheDarkKnight

Antwort

0

Es ist ein Weg/scrape twitter zu kriechen, ohne die Twitter-API; jedoch wird empfohlen, dass Sie die API selbst verwenden. Dies hat mehrere Vorteile, wie es ist offiziell, zusätzlich zu einer Tonne Unterstützung aus der Gemeinschaft.

Trotzdem können Sie führen mit requests und beautiful soup kriechen, oder wenn Sie sich für eine leistungsfähigere Option, gehen Sie für Selenium und PhantomJS suchen.

Hier sind ein paar ähnliche Fragen, die Sie durchlesen können:

Scrapping of the Twitter follower page using selenium and phantomjs

How to collect tweets about an event that are posted on specific date using python?

How to perform oauth when doing twitter scrapping with python requests

Infinite Web Scrapping Twitter

Prost :)