我尝试从 Twitter 网站获取数据。我已经在互联网上进行了研究,以及如何使用 dart/flutter 从网站获取数据。所以我找到了一个名为 web_scraper 的插件,但我无法通过访问 twitter 网站来理解如何做到这一点。
这是我试过的代码
我像这样向 puspec.YAML 添加插件
dependencies:
web_scraper: ^0.1.4
这是代码:
final rawUrl = 'https://twitter.com/FlutterDev/status/1367166395235012608';
final webScraper = WebScraper('https://twitter.com');
final endpoint = rawUrl.replaceAll(r'https://twitter.com', '');
if (await webScraper.loadWebPage(endpoint)) {
final titleElements = webScraper.getElement(
// todo:I can't think how to find text for here ,
[]);
print(titleElements);
}
这是推文链接:
https://twitter.com/FlutterDev/status/1367166395235012608
这是页面检查
我只想要推文标题和推文正文!
答案 0 :(得分:-1)
Twitter 的网页是高度动态的,因此很难获得其网页来源。简单的方法是获取凭据以使用其 API here。您可以使用多种可用功能。
对于你的情况,你可以使用这个:
var request = http.Request('GET', Uri.parse('https://api.twitter.com/2/tweets/1367166395235012608?tweet.fields=attachments,author_id,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,referenced_tweets,source,text,withheld'));
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
你会得到这样的东西:
{data: {attachments: {media_keys: [16_1367162250558013440]}, lang: en, entities: {hashtags: [{start: 32, end: 46, tag:
....
, source: Twitter Web App, author_id: 420730316}}
更多详情here。