ogp_data_extract
一个用于提取网页 Open Graph 协议的简单 dart 库。
入门
在你的 pubspec.yaml 文件中添加依赖。
dependencies:
ogp_data_extract: ^0.x.x
你可以从命令行安装软件包。
使用 Dart
$ dart pub get
使用 Flutter
$ flutter pub get
结构
参考 : Open Graph 协议
OgpData:
- url
- type
- title
- description
- image
- imageSecureUrl
- imageType
- imageWidth
- imageHeight
- imageAlt
- siteName
- determiner
- locale
- localeAlternate
- latitude
- longitude
- streetAddress
- locality
- region
- postalCode
- countryName
- email
- phoneNumber
- faxNumber
- video
- videoSecureUrl
- videoHeight
- videoWidth
- videoType
- audio
- audioSecureUrl
- audioTitle
- audioArtist
- audioAlbum
- audioType
- fbAdmins
- fbAppId
- twitterCard
- twitterSite
用法
解析给定 URL 的 OgpData
void main() async {
const String url = 'https://pub.dev/';
final OgpData? ogpData = await OgpDataExtract.execute(url);
print(ogpData?.url); // https://pub.dev/
print(ogpData?.type); // website
print(ogpData?.title); // Dart packages
print(ogpData?.description); // Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.
print(ogpData?.image); // https://pub.dev/static/img/pub-dev-icon-cover-image.png?hash=vg86r2r3mbs62hiv4ldop0ife5um2g5g
print(ogpData?.siteName); // Dart packages
}
解析时指定 User-Agent
void main() async {
const String url = 'https://pub.dev/';
const String userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1';
final OgpData? ogpData = await OgpDataExtract.execute(url, userAgent: userAgent);
print(ogpData);
}
手动使用解析器
void main() async {
const String url = 'https://pub.dev/';
final http.Response response = await http.get(Uri.parse(url));
final Document? document = OgpDataExtract.toDocument(response);
final OgpData ogpData = OgpDataParser(document).parse();
print(ogpData);
}
致谢
此库受到 metadata_fetch 的启发。
但是,这个库专注于 Open Graph 协议的提取。