main function

Future<void> main()

Example of using Query with the Scraper class. This example demonstrates how to use the Scraper class for scraping. The difference between this example and elements_example.dart is that elements_example.dart is intended to extract multiple elements, such as several books.

Implementation

Future<void> main() async {
  final Scraper scraper = Scraper();
  final String url = 'https://books.toscrape.com/';

  final Document doc = await scraper.getDocument(url: url);
  final String? title = scraper.querySelector(
    doc: doc,
    query: '.col-xs-6.col-sm-4.col-md-3.col-lg-3 h3 a',
  );
  final String? price = scraper.querySelector(
    doc: doc,
    query: '.col-xs-6.col-sm-4.col-md-3.col-lg-3 p.price_color',
  );
  final String? availability = scraper.querySelector(
    doc: doc,
    query: '.col-xs-6.col-sm-4.col-md-3.col-lg-3 p.availability',
  );
  final String? image = scraper.querySelectAttr(
    doc: doc,
    query: '.col-xs-6.col-sm-4.col-md-3.col-lg-3 .image_container img',
    attr: 'src',
  );
  final String? link = scraper.querySelectAttr(
    doc: doc,
    query: '.col-xs-6.col-sm-4.col-md-3.col-lg-3 h3 a',
    attr: 'href',
  );

  final books = BooksEntity(
    title: title ?? '',
    price: price ?? '',
    availability: availability ?? '',
    image: image ?? '',
    link: link ?? '',
  );
  print('-----------------------------------');
  print(books.toJson());
  print('-----------------------------------');
}