【问题标题】:Checking if tweet contains a link to external site检查推文是否包含指向外部站点的链接
【发布时间】:2012-06-16 14:34:55
【问题描述】:

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

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

【问题讨论】:

    标签: twitter


    【解决方案1】:

    您可以使用Twitter Entities 获取推文的所有 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": [
    
          ]
    
        }
    

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

    【讨论】:

      【解决方案2】:

      您如何访问推文?通过抓取 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-urltwitter-timeline-link 似乎都提供了实际链接,而 href 通过一些推特过滤器重定向您。但无论如何,您可以确定的一件事是链接包含href

      【讨论】:

      • 请查看问题编辑。由于它没有保证最安全的选择就是将href从推文文本中刮掉?
      • @user470184:它实际上可能总是被 Twitter 格式化为http://,但我不确定。所以是的,我认为寻找 href 会更加强大,至少在理论上是这样。
      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      相关资源
      最近更新 更多