Explorer
/proc/21/root/tmp/korr01_browser3.py
← Zurück ↓ Download
import json
from pathlib import Path
from playwright.sync_api import sync_playwright
base='https://sma.agentsolutions-mallorca.com/cockpit'
r=[]
with sync_playwright() as p:
 b=p.chromium.launch(headless=True); page=b.new_page(viewport={'width':1440,'height':1000}); errs=[]
 page.on('pageerror',lambda e:errs.append(str(e))); page.on('console',lambda m:errs.append(m.text) if m.type=='error' else None)
 page.goto(base+'?days=3&sort=relevance&tab=radar&ev=groups',wait_until='networkidle')
 def st(body): return 'collapsed' in (body.get_attribute('class') or '')
 for label in ['ALLGEMEIN','FERIENIMMOBILIEN','WETTER & KLIMA','KONKURRENZ & MARKT']:
  h=page.locator('.cat-hdr').filter(has_text=label).first; body=h.locator('xpath=following-sibling::*[1]')
  if not st(body): h.click(); page.wait_for_timeout(20)
  closed=st(body); h.click(); page.wait_for_timeout(20); opened=not st(body); h.locator('span').last.click(); page.wait_for_timeout(20); arrow=st(body)
  r.append({'group':label,'opened':opened,'arrow_closes':arrow})
 # open allgemein screenshot
 h=page.locator('.cat-hdr').filter(has_text='ALLGEMEIN').first; body=h.locator('xpath=following-sibling::*[1]')
 if st(body): h.click()
 page.screenshot(path='/home/hermes/Antworten/AA-023-KORR-01-A-allgemein.png',full_page=True)
 # clean action page
 page.goto(base+'?days=3&sort=relevance&tab=radar&ev=actions',wait_until='networkidle'); page.locator('#blocked-filter-btn').click(); comp=page.locator('.ccard').first; comp.locator('.thumb').click(force=True); ct=page.locator('#pcontent').inner_text(); r.append({'competition':{'post_analysieren':'Post analysieren' in ct,'post_erstellen':'Post erstellen' in ct,'konkurrenz':'Konkurrenz analysieren' in ct}}); page.screenshot(path='/home/hermes/Antworten/AA-023-KORR-01-B-konkurrenz.png',full_page=True)
 # freshness
 page.goto(base+'?days=5&sort=relevance&tab=radar&ev=freshness',wait_until='networkidle'); page.locator('#blocked-filter-btn').click(); page.screenshot(path='/home/hermes/Antworten/AA-023-KORR-01-C-meta-freshness.png',full_page=True)
 for sort in ['op_priority','score','facebook','linkedin']:
  page.goto(f'{base}?days=5&sort={sort}&tab=radar&ev=filters',wait_until='networkidle'); r.append({'filter':sort,'url':page.url,'groups':page.locator('.cat-hdr').count()})
 page.reload(wait_until='networkidle'); r.append({'reload':page.url,'groups':page.locator('.cat-hdr').count(),'errors':errs})
 b.close()
Path('/home/hermes/Antworten/AA-023-KORR-01-browser.json').write_text(json.dumps(r,ensure_ascii=False,indent=2))
print(json.dumps({'groups':r[:4],'competition':r[4],'filter_steps':len(r)-5,'errors':errs},ensure_ascii=False))