无法从网站获取数据使用 web_scraper 插件颤振

问题描述

我尝试从 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

这是页面检查

enter image description here

我只想要推文标题和推文正文!

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...