0

要检查推文是否包含指向外部站点的链接,我只是检查推文是否包含 'http:' ?这足够了吗?

我正在使用 twitter rest API 访问推文,因此我解析了包含推文的 json 响应。

4

2 回答 2

1

你如何访问推文?通过抓取 Twitter 网站,还是通过一些 API?如果您使用 API,是哪一个等。在我看来,js-tweet-text源代码部分总是被格式化为提供带有 http:// 的链接,但可能无法保证。你为什么不直接寻找href呢?

例子:

    <p class="js-tweet-text">
      Blabla tweet text... <a data-expanded-url="http://bit.ly/somelink" 
          class="twitter-timeline-link" href="http://t.co/stuff"
          rel="nofollow" class="twitter-timeline-link">bit.ly/somelink
          </a>
    </p>

data-expanded-url在这里,两者twitter-timeline-link似乎都给出了实际链接,同时href通过一些 twitter 过滤器重定向你。但无论如何,您可以确定的一件事是链接包含一个href.

于 2012-06-16T14:48:06.407 回答
1

您可以使用Twitter Entity获取推文的所有 URL 。进行 REST 调用时,请确保包括

&include_entities=true

这将为您提供 JSON 或 XML 中称为实体的部分。将有一个名为 urls 的子节点。

这是将返回的示例。

"text": "Twitter for Mac is now easier and faster, and you can open multiple windows at once http://t.co/0JG5Mcq",

    "entities": {

      "media": [

      ],

      "urls": [

        {

          "url": "http://t.co/0JG5Mcq",

          "display_url": "blog.twitter.com/2011/05/twitte…",

          "expanded_url": "http://blog.twitter.com/2011/05/twitter-for-mac-update.html",

          "indices": [

            84,

            103

          ]

        }

      ],

      "user_mentions": [

      ],

      "hashtags": [

      ]

    }

因此,查找实体 -> urls 以查看推文是否包含指向外部站点的链接。

于 2012-06-17T08:48:19.793 回答