Images in a table and objects decorationΒΆ
When you describe your Header
fields, you can configure some of them to contain image or color data. This is done by passing the binary_type parameter to the Field
constructor, when your field type is ValueType.String
class WikiPageImages(metaclass=Header):
display_name = 'Wiki page images'
PageUrl = Field('Page URL', ValueType.String)
Image = Field('Image', ValueType.String, binary_type=BinaryType.Image) # here you mark field as image
ImageUrl = Field('Image URL', ValueType.String)
Alt = Field('Alt', ValueType.String)
We will create a simple task for extracting images from Wikipedia articles. For this purpose, we will use the BeatifulSoup html parser and requests library.
You can install them using this command:
pip install requests, bs4
To place an image into such field, one has to convert its bytes to Base64. You can use the base64string_from_bytes()
method of the Utils
class for this.
Note
You can download this example task
here
Now, to use this images as a decoration for your object, you can call SchemaObject.set_properties()
and pass a system_name of your image field as image_source argument
image_in_page = SchemaObject(Image, mapping={
Image.URL: Header.ImageUrl,
Image.Alt: Header.Alt
})
image_in_page.set_properties(image_source=Header.Image.system_name)
Now you can launch this task and create schema with images. If your objects also contain GeoPoint attribute, you can place this objects with images on map.