要检查推文是否包含指向外部网站的链接,我只是检查推文是否包含“http:”?这还够吗?
我正在使用twitter rest API访问推文,因此我解析了包含推文的json响应。
答案 0 :(得分:1)
你如何访问推文?通过抓取推特网站,或通过一些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
。
答案 1 :(得分:1)
您可以使用Twitter Entities获取推文的所有网址。进行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": [
]
}
所以,寻找实体 - &gt;请查看推文是否包含指向外部网站的链接。