Skip to content

Analiza źródła

dmydlarz edited this page Oct 29, 2013 · 19 revisions

Twitter

Q&A

  • Czy da się ograniczyć w searchu tylko do tweetów z geolokalizacją?

Nie dla REST API, tak dla Streaming API

  • Jak zawęzić wyszukiwanie tweetów do określonego obszaru?

W Streaming API poprzez współrzędne prostokątnego obszaru

Zdobyte informacje

REST API

The Search API is not complete index of all Tweets, but instead an index of recent Tweets. At the moment that index includes between 6-9 days of Tweets.

  • Nie można filtrować po geolokalizacji

There's no filter you can apply to the Search API that will limit only to explicitly geotagged tweets https://dev.twitter.com/discussions/21789

  • możliwość filtrowania - lokalizacja, język, słowa kluczowe
  • różne rodzaje wyciąganych danych - wpisy, lista miejsc, znajomi, followersi, ulubione wpisy, trendy, sugerowani użytkownicy
  • limit: 180 zapytań w 15 minutowym oknie, więcej - w jednym zapytaniu maks. 100 wpisów więcej

Streaming API

  • Dokumentacja
  • Działa tylko dla wpisów "na żywo"
  • Można filtrować geolokalizację
    • Na podstawie dokładnych danych z telefonu (sieć komórkowa / GPS)
    • Lub na danych przybliżonych (pisząc bezpośrednio z komputera)
    • Uwaga: lokalizacja może być ustawiona ręcznie przez użytkownika
  • Filtrowanie po lokalizacjach (https://dev.twitter.com/docs/streaming-apis/parameters#locations)

Przykładowe zapytanie

HTTP/1.1 200 OK
content-type:application/json;charset=utf-8
x-frame-options:SAMEORIGIN
x-rate-limit-remaining:174
last-modified:Wed, 16 Oct 2013 07:10:28 GMT
status:200 OK
date:Wed, 16 Oct 2013 07:10:28 GMT
x-transaction:a9a987d7a6956262
pragma:no-cache
cache-control:no-cache, no-store, must-revalidate, pre-check=0, post-check=0
x-xss-protection:1; mode=block
x-rate-limit-limit:180
expires:Tue, 31 Mar 1981 05:00:00 GMT
set-cookie:guest_id=v1%3A138190742874790579; Domain=.twitter.com; Path=/; Expires=Fri, 16-Oct-2015 07:10:28 UTC
content-length:6957
x-rate-limit-reset:1381908037
server:tfe
strict-transport-security:max-age=631138519
x-access-level:read-write-directmessages

[
  {
    "created_at": "Tue Oct 15 16:04:42 +0000 2013",
    "id": 390146222759378940,
    "id_str": "390146222759378945",
    "text": "@BolekLegia @K_Stanowski Zobacz wyniki z Serbia, Finlandia plus fart w Lizbonie. Krzynowek- plecy Ricardo - remis. I dno w elim. do MS w RPA",
    "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
    "truncated": false,
    "in_reply_to_status_id": 390145461308231700,
    "in_reply_to_status_id_str": "390145461308231680",
    "in_reply_to_user_id": 1488312289,
    "in_reply_to_user_id_str": "1488312289",
    "in_reply_to_screen_name": "BolekLegia",
    "user": {
      "id": 1136771436,
      "id_str": "1136771436",
      "name": "Mateusz Borek",
      "screen_name": "BorekMati",
      "location": "",
      "description": "Komentator/moderator Polsatu od 2000 r. Wcześniej Canal+ i Eurosport.",
      "url": null,
      "entities": {
        "description": {
          "urls": []
        }
      },
      "protected": false,
      "followers_count": 30414,
      "friends_count": 272,
      "listed_count": 152,
      "created_at": "Thu Jan 31 11:52:33 +0000 2013",
      "favourites_count": 37,
      "utc_offset": null,
      "time_zone": null,
      "geo_enabled": false,
      "verified": false,
      "statuses_count": 3911,
      "lang": "pl",
      "contributors_enabled": false,
      "is_translator": false,
      "profile_background_color": "C0DEED",
      "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_tile": false,
      "profile_image_url": "http://a0.twimg.com/profile_images/3187760032/0d15136885c94c367dcc78d9e473682e_normal.jpeg",
      "profile_image_url_https": "https://si0.twimg.com/profile_images/3187760032/0d15136885c94c367dcc78d9e473682e_normal.jpeg",
      "profile_link_color": "0084B4",
      "profile_sidebar_border_color": "C0DEED",
      "profile_sidebar_fill_color": "DDEEF6",
      "profile_text_color": "333333",
      "profile_use_background_image": true,
      "default_profile": true,
      "default_profile_image": false,
      "following": null,
      "follow_request_sent": false,
      "notifications": null
    },
    "geo": null,
    "coordinates": null,
    "place": null,
    "contributors": null,
    "retweet_count": 0,
    "favorite_count": 0,
    "entities": {
      "hashtags": [],
      "symbols": [],
      "urls": [],
      "user_mentions": [
        {
          "screen_name": "BolekLegia",
          "name": "Andrzej K.",
          "id": 1488312289,
          "id_str": "1488312289",
          "indices": [
            0,
            11
          ]
        },
        {
          "screen_name": "K_Stanowski",
          "name": "Krzysztof Stanowski",
          "id": 1183133300,
          "id_str": "1183133300",
          "indices": [
            12,
            24
          ]
        }
      ]
    },
    "favorited": false,
    "retweeted": false,
    "lang": "pl"
  }
]

Możliwe do wyłuskania informacje nt. lokalizacji

  • Geo and Coordinates are the same fields, but Geo is deprecated! Both of them contains latitude and longitude, but in reversed orded
  • Coordinates
    • The Tweet was created with a latitude and longitude being passed to it. The lat/long is for a place not yet know to our database
  • Coordinates and Place
    • The Tweet was created with a latitude and longitude being passed to it. The lat/long is known to our database and the neighborhood it corresponds to was set as the place.
  • Place
    • The Tweet was created with a place_id being passed to it, but no lat/long.

Linki