Така...
XML е шитняна работа и парсването е кошмар. А и отдавна не бях пипал Python, та забавих и покрай някакви елементарни грешки.
Както казах, има модул направен за работа с docx документи, обаче в предния ми пост се видя, че читаво не излиза. Почти всичко липсва. Затова се хванах директно да работя с XML-а, с инструментите, които си идват с Питоня. Едва ли ще искаш да инсталираш модули.
Скрипта:
import sys
import xml.etree.ElementTree as et
import zipfile as zf
zip = zf.ZipFile(sys.argv[1])
doc = zip.open('word/document.xml')
tree = et.parse(doc)
root = tree.getroot()
ns = {'w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'}
urls = []
for table in root.findall(".//w:tbl", ns):
urls.extend([cell.text for cell in table.findall('.//w:t', ns)])
domains = []
for url in urls:
if url.startswith('http'):
domains.append(url.strip().split('//')[1].split('/')[0].lstrip('www.'))
elif url.startswith('www'):
domains.append(url.split('/')[0].lstrip('www.'))
else:
domains.append(url.split('/')[0])
for domain in sorted(list(set(domains))):
print(domain)
Файлът отново се задава като параметър, та да можеш да си посочваш, каквото желаеш.
Изходът от горното върху docx файла, за когото даде линк:
aba.marketing
afh.bg
alphabetfx.com
arotrade.com
brokerz.com
cfds100.com
crypto.com
cryptofg.com
ellingtoninv.com
en.utrader.com
finarix.com
finixcapital.com
finmaxbo.com
finmaxcfd.com
fxnobels.io
infinitrade.com
investingcapital.com
jpm-invest.com
legalcfd.com
marketscfd.net
nextcoinmarket.com
olssoncapital.com
olympusmarkets.com
omegafx.io
payboutique.com
pbncapital.com
profit-trade.com
ptbanc.com
royalcbank.com
sternmarkets.com
swissinv24.com
trader.online
umarkets.com
Чакам си бирата