چگونه هوش مصنوعی در ایجاد نقص وب: تکنیک ها و نمونه های کد متحول می شود

خراش وب سنتی برای استخراج داده ها به قوانین از پیش تعریف شده (به عنوان مثال ، انتخاب کنندگان CSS یا XPath) متکی است. اما هرچه وب سایت ها پیچیده تر می شوند-با چیدمان پویا ، سیستم های ضد بوته و داده های بدون ساختار-AI در حال تبدیل شدن به یک تغییر دهنده بازی است. از تجزیه متن کثیف گرفته تا دور زدن Captchas ، هوش مصنوعی به Scrapers این امکان را می دهد تا سازگار ، یادگیری و مقیاس شوند.
در این وبلاگ ، ما روشهای عملی برای ادغام هوش مصنوعی را در گردش کار در وب ، با نمونه های کد کامل می کنیم.
چرا از هوش مصنوعی در خراش وب استفاده می کنید؟
- رسیدگی به محتوای پویا: AI می تواند چیدمان های بصری (از طریق دید رایانه) یا متن بدون ساختار (از طریق NLP) را تفسیر کند.
- فرار ضد ربات: برای جلوگیری از تشخیص ، از الگوهای رفتاری انسان تقلید می کند.
- تجزیه و تحلیل داده ها: بینش را از متن ، تصاویر یا PDF با فرم آزاد استخراج کنید.
- خراش سازگار: خراشگرهای خود درمانی که با تغییرات وب سایت تنظیم می شوند.
1. تشخیص عناصر با قدرت AI (دید رایانه)
مورد استفاده: یک وب سایت را بدون ساختار HTML سازگار بکشید.
ابزار: نمایشنامه نویس + yolo (مدل تشخیص شی).
# Install dependencies: pip install playwright torch ultralytics numpy
from playwright.sync_api import sync_playwright
from PIL import Image
import numpy as np
from ultralytics import YOLO
def detect_elements():
model = YOLO("yolov8n.pt") # Pre-trained model
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
# Capture screenshot
page.screenshot(path="screenshot.png")
img = Image.open("screenshot.png")
# Detect elements (e.g., buttons, text)
results = model(img)
boxes = results[0].boxes.xyxy # Bounding boxes
# Extract coordinates of detected elements
for box in boxes:
x1, y1, x2, y2 = box.numpy()
print(f"Detected element at position: ({x1}, {y1}) to ({x2}, {y2})")
browser.close()
detect_elements()
چگونه کار می کند:
- نمایشنامه نویس تصویری از صفحه را ضبط می کند.
- Yolo عناصر UI (دکمه ها ، بلوک های متن) را در تصویر تشخیص می دهد.
- برای تعامل با عناصر از مختصات استفاده کنید (به عنوان مثال ، با کلیک بر روی یک دکمه).
2. پردازش زبان طبیعی (NLP) برای داده های بدون ساختار
مورد استفاده: داده های ساختاری را از متن بدون ساختار استخراج کنید (به عنوان مثال ، بررسی ها ، اخبار).
ابزار: پایتون + ترانسفورماتور (بغل کردن صورت).
# Install: pip install transformers requests beautifulsoup4
from transformers import pipeline
import requests
from bs4 import BeautifulSoup
# Scrape raw text
url = "https://example-news.com/article"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
article_text = soup.find("div", class_="article-body").text
# Use NLP to extract entities (people, organizations)
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER")
entities = ner_pipeline(article_text)
# Filter and print entities
for entity in entities:
if entity["score"] > 0.9:
print(f"{entity['word']} ({entity['entity']})")
خروجی:
Apple (ORG)
Elon Musk (PER)
New York (LOC)
3. دور زدن CAPTCHAS با AI
مورد استفاده: CAPTCHAS را به طور خودکار در حین خراش حل کنید.
ابزار: نمایشنامه نویس + 2Captcha API.
const { chromium } = require('playwright');
const axios = require('axios');
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://website-with-captcha.com');
// Solve CAPTCHA using 2Captcha API
const captchaImage = await page.$eval('#captcha-image', el => el.src);
const apiKey = 'YOUR_2CAPTCHA_KEY';
// Submit CAPTCHA to 2Captcha for solving
const { data: { requestId } } = await axios.post(
`https://2captcha.com/in.php?key=${apiKey}&method=base64&body=${captchaImage}`
);
// Poll for solution
let solution;
while (!solution) {
const { data } = await axios.get(
`https://2captcha.com/res.php?key=${apiKey}&action=get&id=${requestId}`
);
if (data.includes('OK')) {
solution = data.split('|')[1];
break;
}
await new Promise(resolve => setTimeout(resolve, 5000));
}
// Submit solved CAPTCHA
await page.fill('#captcha-input', solution);
await page.click('#submit');
await browser.close();
})();
4. خراش سازگار با هوش مصنوعی خود درمانی
مورد استفاده: هنگام تغییر وب سایت ها ، به طور خودکار انتخاب کننده ها را تنظیم کنید.
ابزار: Python + Scropy + Learning Machine.
# Simplified example: Train a model to predict CSS selectors
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# Sample training data (features: HTML attributes, label: selector)
training_data = pd.DataFrame([
{"tag": "div", "class": "price", "id": "price", "selector": ".price"},
{"tag": "h1", "class": "title", "id": None, "selector": "h1.title"},
])
X = training_data[["tag", "class", "id"]]
y = training_data["selector"]
model = RandomForestClassifier()
model.fit(pd.get_dummies(X), y)
# Predict selector for new element
new_element = {"tag": "span", "class": "price-new", "id": None}
predicted_selector = model.predict(pd.get_dummies(pd.DataFrame([new_element])))[0]
print(f"Predicted selector: {predicted_selector}")
ملاحظات اخلاقی
- شفافیت: در صورت نیاز به شرایط وب سایت ، استفاده از هوش مصنوعی را فاش کنید.
- تعصب: اطمینان حاصل کنید که مدل های NLP در داده های خراشیده تعصب را تحریک نمی کنند.
- خلوت: از خراش داده های شخصی خودداری کنید ، حتی اگر AI این امکان را فراهم کند.
آینده هوش مصنوعی در خراش دادن
- مدل های بینایی زبان (VLMS): داده ها را مستقیماً از تصاویر/pdfs استفاده کنید.
- یادگیری تقویت کننده: رباتها را برای حرکت در وب سایت هایی مانند انسان آموزش دهید.
- یادگیری صفر: داده ها را بدون نمونه های از پیش برچسب استخراج کنید.
پایان
هوش مصنوعی ، خراش وب را از یک فرآیند استاتیک و مبتنی بر قانون به یک سیستم پویا و سازگار تبدیل می کند. این که آیا شما در حال تجزیه و تحلیل متن بدون ساختار ، فرار از سیستم های ضد بوته یا ساختن اسکراپرهای خود درمانی هستید ، ابزارهای هوش مصنوعی مانند بینایی رایانه و NLP برای استخراج داده های مدرن ضروری هستند.