{"id":2754,"date":"2015-12-16T02:58:23","date_gmt":"2015-12-16T02:58:23","guid":{"rendered":"http:\/\/www.garysieling.com\/blog\/?p=2754"},"modified":"2015-12-16T02:58:23","modified_gmt":"2015-12-16T02:58:23","slug":"script-to-get-values-from-wikiart-pages","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/script-to-get-values-from-wikiart-pages\/","title":{"rendered":"Script to get values from wikiart pages"},"content":{"rendered":"<p>The following script will pull data values from a wikiart page (<a href=\"http:\/\/www.wikiart.org\/\">an excellent index of paintings<\/a>) &#8211;<\/p>\n<pre lang=\"python\">\nimport glob\n\nindir = 'D:\\\\projects\\\\art\\\\'\nfor filename in glob.glob(indir + \"*.html\"):\n    print filename\n    spans = soup.select(\"span[itemprop]\")\n    ahrefs = soup.select(\"a[itemprop]\")\n    \n    file = open(filename, 'r')\n\n    soup = BeautifulSoup(file, 'html.parser')\n\n    spans = soup.select(\"span[itemprop]\")\n    arefs = soup.select(\"a[itemprop]\")\n    \n    [(v[\"itemprop\"], v.text) for v in spans + arefs]    \n<\/pre>\n<p>Since most of the data values are labelled, you get a data structure like so:<\/p>\n<p>[(u&#8217;birthDate&#8217;, u&#8217;31 March 1902&#8242;), (u&#8217;dearthDate&#8217;, u&#8217;24 August 1976&#8242;), (u&#8217;nation&#8217;, u&#8217;French&#8217;), (u&#8217;nation&#8217;, u&#8217;Russian&#8217;), (u&#8217;art movement&#8217;, u&#8217;Art Informel&#8217;), (u&#8217;art movement&#8217;, u&#8217;Tachisme&#8217;), (u&#8217;painting school&#8217;, u&#8217;\\xc9cole de Paris&#8217;), (u&#8217;genre&#8217;, u&#8217;abstract&#8217;)]<br \/>\nD:\\projects\\art\\wikiart\\www.wikiart.org\\en\\andre-pierre-arnal.html<br \/>\nD:\\projects\\art\\wikiart\\www.wikiart.org\\en\\andre-pierre-arnal.html<br \/>\n[(u&#8217;birthDate&#8217;, u&#8217;16 December 1939&#8242;), (u&#8217;nation&#8217;, u&#8217;French&#8217;), (u&#8217;art movement&#8217;, u&#8217;Art Informel&#8217;), (u&#8217;art movement&#8217;, u&#8217;Contemporary&#8217;), (u&#8217;painting school&#8217;, u&#8217;Supports\/Surfaces&#8217;), (u&#8217;genre&#8217;, u&#8217;abstract&#8217;)]<br \/>\nD:\\projects\\art\\wikiart\\www.wikiart.org\\en\\andrea-del-castagno.html<br \/>\nD:\\projects\\art\\wikiart\\www.wikiart.org\\en\\andrea-del-castagno.html<br \/>\n[(u&#8217;birthDate&#8217;, u&#8217;c.1421&#8242;), (u&#8217;dearthDate&#8217;, u&#8217;19 August 1457&#8242;), (u&#8217;nation&#8217;, u&#8217;Italian&#8217;), (u&#8217;art movement&#8217;, u&#8217;Early Renaissance&#8217;), (u&#8217;painting school&#8217;, u&#8217;Florentine School&#8217;)]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following script will pull data values from a wikiart page (an excellent index of paintings) &#8211; import glob indir = &#8216;D:\\\\projects\\\\art\\\\&#8217; for filename in glob.glob(indir + &#8220;*.html&#8221;): print filename spans = soup.select(&#8220;span[itemprop]&#8221;) ahrefs = soup.select(&#8220;a[itemprop]&#8221;) file = open(filename, &#8216;r&#8217;) soup = BeautifulSoup(file, &#8216;html.parser&#8217;) spans = soup.select(&#8220;span[itemprop]&#8221;) arefs = soup.select(&#8220;a[itemprop]&#8221;) [(v[&#8220;itemprop&#8221;], v.text) for v in &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.garysieling.com\/blog\/script-to-get-values-from-wikiart-pages\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Script to get values from wikiart pages&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[61,83,447,495],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/2754"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=2754"}],"version-history":[{"count":0,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/2754\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=2754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=2754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=2754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}