{
"cells": [
{
"cell_type": "markdown",
"id": "1e0d3195",
"metadata": {},
"source": [
"#### Test att hämta bilder och söka i SPA\n",
"* [Denna notebook](https://github.com/salgo60/spa2Commons/blob/main/Notebook/SPA%20test.ipynb) \n",
"\n",
"Tanken att se vilka möjligheter som finns\n",
"* skapa ett script --> ett klick för att ladda upp bilder se test [spa2commons](https://commons.wikimedia.org/wiki/User:Salgo60/spa2commons.js) - GITHUB [salgo60/spa2Commons](https://github.com/salgo60/spa2Commons) \n",
"* att ta en plats som en kyrkogård eller en koppling Litteraturbanken och se vad som kan matchas\n",
"* att stämma av länkar SPA -> WIkipedia att dessa finns i WIkidata med länk tillbaka via [P4819](https://www.wikidata.org/wiki/Property:P4819?uselang=sv)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "b7356181",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Last run: 2021-10-23 18:31:51.483626\n"
]
}
],
"source": [
"from datetime import datetime\n",
"start_time = datetime.now()\n",
"print(\"Last run: \", start_time)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "114115c3",
"metadata": {},
"outputs": [],
"source": [
"import urllib3, json\n",
"import pandas as pd \n",
"http = urllib3.PoolManager() \n",
"\n",
"url= \"https://portrattarkiv.se/endpoints/latest.php\"\n",
"url= \"https://xn--portrttarkiv-kcb.se/endpoints/search.php\"\n",
"url= \"https://portrattarkiv.se/endpoints/search.php\" \n"
]
},
{
"cell_type": "markdown",
"id": "46aad73b",
"metadata": {},
"source": [
"### Test 1 Johan August Flygare - exakt sökning"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "64a432c5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n"
]
}
],
"source": [
"#Test 1\n",
"encoded_body = json.dumps({\n",
" \"limit\": \"40\",\n",
" \"from\": \"0\",\n",
" \"firstname\": \"Johan August \",\n",
" \"firstnameexact\":True,\n",
" \"lastname\":\"Flygare\",\n",
" \"lastnameexact\":True,\n",
" \"facts\":{},\n",
" \"factsExact\":{},\n",
" \"all\":None,\n",
" })\n",
"\n",
"r = http.request('POST', url,\n",
" headers={'Content-Type': 'application/json'},\n",
" body=encoded_body)\n",
"\n",
"data = json.loads(r.data.decode('utf-8'),) \n",
"print(r.status)\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "bdeb7564",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sj9PGLAlnmUAAAAAACblbg Johan August Flygare - 1852\n",
"\thttps://portrattarkiv.se/details/sj9PGLAlnmUAAAAAACblbg\n",
"IQojCnw0WmAAAAAAAAAKUA August Flygare - 1852\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKUA\n",
"IQojCnw0WmAAAAAAAAAKUQ August Flygare - 1852\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKUQ\n",
"IQojCnw0WmAAAAAAAAAKTw August Flygare - 1890\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKTw\n",
"IQojCnw0WmAAAAAAAABMFg Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAABMFg\n",
"IQojCnw0WmAAAAAAAABLwg Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAABLwg\n",
"sj9PGLAlnmUAAAAAABLeCw Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/sj9PGLAlnmUAAAAAABLeCw\n",
"sj9PGLAlnmUAAAAAABLeCg Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/sj9PGLAlnmUAAAAAABLeCg\n",
"IQojCnw0WmAAAAAAAABMCw Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAABMCw\n",
"sj9PGLAlnmUAAAAAABLdwQ Johan Flygare - 1841\n",
"\thttps://portrattarkiv.se/details/sj9PGLAlnmUAAAAAABLdwQ\n",
"IQojCnw0WmAAAAAAAAALqA Lars Flygare - 1806\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAALqA\n",
"IQojCnw0WmAAAAAAAAAKVg A Flygare - 1881\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKVg\n",
"IQojCnw0WmAAAAAAAAAKQQ Carl Flygare - 1876\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKQQ\n",
"IQojCnw0WmAAAAAAAAAKOg Emil Flygare - 1848\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKOg\n",
"IQojCnw0WmAAAAAAAAAKOQ Emil Flygare - 1848\n",
"\thttps://portrattarkiv.se/details/IQojCnw0WmAAAAAAAAAKOQ\n"
]
}
],
"source": [
"for h in data[\"hits\"][\"hits\"]:\n",
" id = h[\"_id\"]\n",
" source = h[\"_source\"]\n",
" #print(h)\n",
" try:\n",
" FirstName = source[\"FirstName\"]\n",
" LastName = source[\"LastName\"]\n",
" BirthYear = source[\"BirthYear\"]\n",
" print(id , \" \", FirstName, \" \", LastName, \" - \", BirthYear)\n",
" print(\"\\t\" + \"https://portrattarkiv.se/details/\" + id)\n",
"# print(\"\\t\" + \"https://portrattarkiv.se/endpoints/file.php?id=\" + id)\n",
" except:\n",
" print(\"Error\")\n",
"# print(h[\"_source\"][\"Path\"])\n",
"# print(h[\"_source\"][\"Filename\"])\n",
"# print(h[\"_source\"][\"FileHash\"])\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "9248d34c",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import IPython.display as Disp"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "9ed44a06",
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import HTML, Image\n",
"\n",
"def _src_from_data(data):\n",
" \"\"\"Base64 encodes image bytes for inclusion in an HTML img element\"\"\"\n",
" img_obj = Image(data=data)\n",
" for bundle in img_obj._repr_mimebundle_():\n",
" for mimetype, b64value in bundle.items():\n",
" if mimetype.startswith('image/'):\n",
" return f'data:{mimetype};base64,{b64value}'\n",
"\n",
"def gallery(images, row_height='auto'):\n",
" \"\"\"Shows a set of images in a gallery that flexes with the width of the notebook.\n",
" \n",
" Parameters\n",
" ----------\n",
" images: list of str or bytes\n",
" URLs or bytes of images to display\n",
"\n",
" row_height: str\n",
" CSS height value to assign to all images. Set to 'auto' by default to show images\n",
" with their native dimensions. Set to a value like '250px' to make all rows\n",
" in the gallery equal height.\n",
" \"\"\"\n",
" figures = []\n",
" for image in images:\n",
" if isinstance(image, bytes):\n",
" src = _src_from_data(image)\n",
" caption = ''\n",
" else:\n",
" src = image\n",
" caption = f'
\n", " | search | \n", "item | \n", "itemLabel | \n", "year | \n", "
---|---|---|---|---|
0 | \n", "Aagot Vilhelmine Klaveness 1876 | \n", "http://www.wikidata.org/entity/Q20891237 | \n", "Aagot Vilhelmine Klaveness | \n", "1876 | \n", "
1 | \n", "Achates Lindman 1826 | \n", "http://www.wikidata.org/entity/Q5957021 | \n", "Achates Lindman | \n", "1826 | \n", "
2 | \n", "Adolf Erland Stenström 1856 | \n", "http://www.wikidata.org/entity/Q6189378 | \n", "Adolf Erland Stenström | \n", "1856 | \n", "
3 | \n", "Adolf Söderberg 1855 | \n", "http://www.wikidata.org/entity/Q42152701 | \n", "Adolf Söderberg | \n", "1855 | \n", "
4 | \n", "Adolph Martin Jacob Henric Bellman 1790 | \n", "http://www.wikidata.org/entity/Q99769900 | \n", "Adolph Martin Jacob Henric Bellman | \n", "1790 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
384 | \n", "Wilhelm Abraham Eurenius 1830 | \n", "http://www.wikidata.org/entity/Q23011083 | \n", "Wilhelm Abraham Eurenius | \n", "1830 | \n", "
385 | \n", "Wilhelm Bergman 1836 | \n", "http://www.wikidata.org/entity/Q5572824 | \n", "Wilhelm Bergman | \n", "1836 | \n", "
386 | \n", "Wilhelm Carlgren 1879 | \n", "http://www.wikidata.org/entity/Q5602625 | \n", "Wilhelm Carlgren | \n", "1879 | \n", "
387 | \n", "Wilhelm Dahlman 1860 | \n", "http://www.wikidata.org/entity/Q59185014 | \n", "Wilhelm Dahlman | \n", "1860 | \n", "
388 | \n", "Wilhelm Netzel 1834 | \n", "http://www.wikidata.org/entity/Q6005908 | \n", "Wilhelm Netzel | \n", "1834 | \n", "
389 rows × 4 columns
\n", "