我正在构建一个网站,并且我正在使用 Twitter API 来显示来自用户推文的数据。它工作正常,但所有推文都以纯文本形式检索。这意味着,与 Twitter 网站不同,所有链接都是纯文本,没有@names 是链接,并且主题标签是完全静态的。
我会假设 Twitter 使用正则表达式提取这些元素,但我不仅不擅长正则表达式,而且我希望结果尽可能接近 Twitter 的实现。有没有办法从 Twitter API 本身中提取这些?如果没有,我怎么能尽可能接近 Twitter 的解析?
看Tweet Entities
。您可以将参数添加&tweet_entities=1
到某些 REST 调用的末尾。JSON 响应将包括您寻找的归因于推文的额外属性。
IE
urls 实体
从推文文本中提取的 URL 数组。每个 URL 实体都带有以下属性: url 、 display_url、expanded_url、indices
"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": [
]
}
主题标签实体
从推文文本中提取的一系列标签。每个 Hashtag 实体都具有以下属性:
text
Hashtag 文本索引
Hashtag 从中提取的字符位置
"text": "Loved #devnestSF"
> "entities": {
> "media": [
> ],
> "urls": [
> ],
> "user_mentions": [
> ],
> "hashtags": [
> "text": "devnestSF"
> "indices": [
> 6,
> 16
> ]
> ]
> }
user_mentions 实体
从推文文本中提取的一组 Twitter 屏幕名称。每个用户实体都带有以下属性:
id
用户 ID(int 格式) id_str 用户 ID(字符串格式) screen_name
用户屏幕名称 name
用户全名索引
提取用户提及的字符位置
"text": "@rno Et demi!"
"entities": {
"media": [
],
"urls": [
],
"user_mentions": [
{
"id": 22548447,
"id_str": "22548447",
"screen_name": "rno",
"name": "Arnaud Meunier",
"indices": [
0,
4
]
}
],
"hashtags": [
]
}
此链接上的更多推文实体:
我相信这就是您正在寻找的: