From da372a445897407551385e1abcf7b5f1906d200b Mon Sep 17 00:00:00 2001 From: admin9webs Date: Fri, 10 Jul 2026 16:10:55 +0800 Subject: [PATCH] Add archived/drissionpage-website-analysis --- .../drissionpage-website-analysis/SKILL.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 skills/archived/drissionpage-website-analysis/SKILL.md diff --git a/skills/archived/drissionpage-website-analysis/SKILL.md b/skills/archived/drissionpage-website-analysis/SKILL.md new file mode 100644 index 0000000..ec0f524 --- /dev/null +++ b/skills/archived/drissionpage-website-analysis/SKILL.md @@ -0,0 +1,101 @@ +--- +name: drissionpage-website-analysis +description: Use DrissionPage to comprehensively analyze websites — structure, content, links, images, forms, scripts, SEO, and performance metrics. Creates a detailed report with screenshots. +tags: [web-analysis, drissionpage, automation, scraping, seo, python] +--- + +# DrissionPage Website Analysis + +Use DrissionPage to perform comprehensive website analysis — structure, content, links, images, forms, scripts, SEO, and performance. + +## Setup + +```bash +# Install DrissionPage (use a temp venv if needed) +python3 -m venv /tmp/drission_env && source /tmp/drission_env/bin/activate +pip install DrissionPage +``` + +## Browser Configuration + +```python +from DrissionPage import ChromiumPage, ChromiumOptions + +co = ChromiumOptions() +co.set_browser_path('/home/ubuntu/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome') +co.headless() +co.set_argument('--no-sandbox') +co.set_argument('--disable-dev-shm-usage') +co.set_argument('--disable-gpu') +co.auto_port() +page = ChromiumPage(co) +``` + +## Analysis Categories + +A comprehensive website analysis should cover: + +1. **Page Basic Info** — URL, title, language, charset, cookies, storage +2. **Page Structure** — element counts, tag distribution +3. **Content Extraction** — headings (H1-H6), paragraphs, meta tags +4. **Link Analysis** — internal/external/mail/JS links +5. **Image Analysis** — count, alt attributes, lazy loading, dimensions +6. **Form Analysis** — form count, actions, methods, input fields +7. **Scripts & Styles** — external vs inline JS, CSS stylesheets +8. **SEO Analysis** — meta description, keywords, robots, canonical, Open Graph, Twitter Card, H1 count +9. **Performance** — DNS, TCP, TTFB, DOM ready, full load time (via JS `performance.timing`) +10. **Screenshot** — full page screenshot for visual verification + +## Key Code Patterns + +### Get all elements of a type +```python +links = page.eles('tag:a') +images = page.eles('tag:img') +headings = page.eles('tag:h1') +``` + +### Run JavaScript on the page +```python +info = page.run_js('return { title: document.title, url: window.location.href };') +``` + +### Get element attributes +```python +for link in links: + href = link.attr('href') + text = link.text.strip() +``` + +### Take screenshot +```python +page.get_screenshot(path='/tmp/screenshot.png', full_page=True) +``` + +### Performance timing +```python +perf = page.run_js(''' +return { + loadTime: performance.timing.loadEventEnd - performance.timing.navigationStart, + domReady: performance.timing.domContentLoadedEventEnd - performance.timing.navigationStart, + ttfb: performance.timing.responseStart - performance.timing.navigationStart, +}; +''') +``` + +## Pitfalls + +- **uv-managed Python**: The environment may use uv-managed Python which doesn't allow direct pip install. Create a temp venv instead. +- **Chrome path**: The Playwright-installed Chromium is at `/home/ubuntu/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome`. +- **Headless mode**: Always use `co.headless()` for server environments. +- **Auto port**: Use `co.auto_port()` to avoid port conflicts with existing browser instances. +- **Element limits**: When counting all elements (`page.eles('xpath://*')`), limit to ~5000 to avoid performance issues. +- **Wait for content**: Add `time.sleep(3)` after page load for JS-rendered content to appear. + +## Output Structure + +Generate a structured report with: +- Summary table (site name, tech stack, language, load time) +- Section-by-section analysis with emoji headers +- SEO issues flagged with ❌ or ⚠️ +- Full page screenshot for visual reference \ No newline at end of file