User:Peter F. Patel-Schneider/ship maintenance query script
Jump to navigation
Jump to search
#!/bin/python import re import subprocess command = ['/usr/bin/curl','-o','queries.text','--http1.1','-s','-G','https://www.wikidata.org/wiki/Wikidata:WikiProject_Ships/Maintenance'] subprocess.call(command) command = ['/usr/bin/curl','--http1.1','-s','-H','Accept: text/tab-separated-values','-G','https://query.wikidata.org/sparql','--data',] file1 = open('queries.text', 'r') while True: line = file1.readline() if not line: break if not re.compile('class="external text').search(line): continue if not re.compile('query.wikidata.org').search(line): continue
label = re.compile('href.*').search(line).group() # print('LABEL',label) label = re.compile('">[^<]*').search(label).group()[2:] print(label)
query = re.compile('SELECT[^"]*').search(line).group() query = re.sub('LIMIT.*',,query) select = re.compile('SELECT.*WHERE').search(query).group() variable = re.compile('%3F[^%]*').search(query).group() query = re.sub(select,,query) query = 'SELECT%20(COUNT(' + variable + ')%20AS%20%3Fcount)%20WHERE' + query # print("QUERY",query) command[-1] = 'query=' + query # print('COMMAND', command) result = subprocess.check_output(command, text=True) print(re.sub('\n',' ',result)) print() file1.close()