0

我使用trends/availableAPI获得了印度某个地点的可用趋势

{
    'name': 'Bhopal',
    'placeType': {
      'code': 7,
      'name': 'Town'
    },
    'url': 'http://where.yahooapis.com/v1/place/2295407',
    'parentid': 23424848,
    'country': 'India',
    'woeid': 2295407,
    'countryCode': 'IN'
  },
  {
    'name': 'Indore',
    'placeType': {
      'code': 7,
      'name': 'Town'
    },
    'url': 'http://where.yahooapis.com/v1/place/2295408',
    'parentid': 23424848,
    'country': 'India',
    'woeid': 2295408,
    'countryCode': 'IN'
  },
  {
    'name': 'Thane',
    'placeType': {
      'code': 7,
      'name': 'Town'
    },
    'url': 'http://where.yahooapis.com/v1/place/2295410',
    'parentid': 23424848,
    'country': 'India',
    'woeid': 2295410,
    'countryCode': 'IN'
  },
  {
    'name': 'Mumbai',
    'placeType': {
      'code': 7,
      'name': 'Town'
    },
    'url': 'http://where.yahooapis.com/v1/place/2295411',
    'parentid': 23424848,
    'country': 'India',
    'woeid': 2295411,
    'countryCode': 'IN'
  },
  {
    'name': 'Pune',
    'placeType': {
      'code': 7,
      'name': 'Town'

我在代码中传递了不同的 woeid, 它使用apitwitter_api.trends.place(_id=town_woeid)为每个城镇 woeid 提供了相同的趋势主题/trends/place

这是执行此操作的代码的一部分。

woids = {'Nagpur':2295412, 'Lucknow':2295377,'Kanpur':2295378, 'Patna':2295381, 'Ranchi':2295383,'Kolkata':2295386, 'Srinagar':2295387, 'Amritsar':2295388,\
         'Jaipur':2295401,'Ahmedabad':2295402, 'Rajkot':2295404, 'Surat':2295405, 'Bhopal':2295407, 'Indore':2295408, 'Thane':2295410, 'Mumbai':2295411, 'Pune':2295412,\
         'Hyderabad':2295414, 'Bangalore':2295420, 'Chennai':2295424}

        for key in woids.keys():
            print(key, " id: ", woids[key])
            trends = self.twitter_api.trends.place(_id=woids[key])
            print("--------called api ---------- ", trends)
            with open(key+"_Trending.txt", "w+") as f:
                for trending in trends[0]['trends']:
                    print(trending['name'], '-----', trending['tweet_volume'])
                    f.write(trending['name']+ '-----'+str(trending['tweet_volume']))
                    f.write("\n")

这是每个城镇的相同结果。但它应该为每个城镇提供不同的热门话题,对吧?

#RiyazNaikoo ----- 69420
X Æ A-12 ----- 977101
#IUxSUGA ----- 1635605
#HumModiKeSathHain ----- 23887
#IndiaHealthHour ----- None
#सफूरा_जरगर_मेरी_बहन_है ----- 127206
Justice 4 Sea ----- None
मौत मारा ----- 14506
Joonie ----- 25503
slavery ----- 31570
Top Hizbul ----- None
Most Photogenic Star ----- None
Rs 1,610 ----- None
Mysuru ----- None
Anna Hazare ----- None
Kamal Hassan ----- None
#BeingHaangryy ----- 12197
#boislockeroom ----- None
#हंसराज_का_जीजा_कौन_है ----- 19033
#BJPTheRealAntiNational ----- 10857
#गद्दार_मोदी_लुटेरा_है ----- 72618
#पप्पू_तो_गद्दार_है ----- 81990
#GoldQuarantineAwards ----- None
#HizbulMujahideen ----- None
#SidHeartsWishHBDVinduSir ----- 51926
#EXWeek ----- None
#eightiscoming ----- 129374
#भगवा_शेर_योगी_जी ----- None
#SenaKaBadla ----- None
#Thalapathy65 ----- 17290
#MODIJI_HelpUs ----- 123497
#ArrestSwatiMaliwal ----- None
#TerrorismFreeKashmir ----- None
#NarasimhaJayanti ----- None
#TTVcondemnsTASMACopening ----- None
#HBDSundeepKishan ----- None
#आरक्षण_के_जनक ----- 60779
#ஊழலின்_புகலிடம்_அதிமுக ----- 12779
#JassieGill ----- None
#4YearsOfAwestruck24Movie ----- 50243
#भारतीय_सेना ----- None
#JaiHindKiSena ----- None
#ILoveRedmiNote ----- None
#ShameOnYouFadanvis ----- None
Lucknow  id:  2295377

谁能告诉我我做错了什么?或者是twitter方面的缓存问题?谢谢。

4

2 回答 2

0

一个国家内每个地点的趋势完全有可能不会有所不同。这取决于记录 Twitter 趋势的级别。趋势 API 与您在 Twitter 用户界面上看到的趋势不同,因为 UI 具有基于登录用户的个性化数据。如果您确实在某些日子看到城镇之间的不同数据,那么我同意您的建议,即这可能是一个临时缓存问题,但否则,我认为这可能是预期的行为。

于 2020-05-06T13:22:39.560 回答
0

您可以使用 twitter4j 一个 Java API,它可以根据位置 WOEID 轻松返回最新的趋势推文。您只需在 java IDE 中编写以下代码,并将 twitter4j jar 安装在您的 java 库中,以便它可以访问所有必需的方法。

 #1 is WOEID code for worldwide
     Trends trends = twitter.getPlaceTrends(1);
     int count = 0;
     for (Trend trend : trends.getTrends()) {
     #you can change the  count value depending upon your requirement.
     if (count < 10) 
       {
         System.out.println(trend.getName() + "," + trend.getTweetVolume());
       }

但在此代码之前,您必须设置 twitter4j 实例。您可以直接在 twitter4j 官方网站上获取这些配置详细信息,以及如何开始使用 twiiter4j 以及所需的所有必要步骤。

于 2020-06-28T17:12:21.983 回答