Xrumer veya benzeri bir yazılıma yönelik mükemmel bir forum tabanını ayrıştırmak için, birisinin kendi konularını (reklamlarını) yayınladığı ve onları güçlendirmek için konularını diğer forumlara bağladığı bir konu bulmak yeterlidir.
Bu betiği kullanarak veritabanlarını toplayabilirsiniz.
Gereksinimler:
Aşağıdakileri kullanarak gerekli kitaplıkları yükleyin:
pip install requests beautifulsoup4
Senaryo:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
import time
def is_external(url, base_url):
return urlparse(url).netloc != urlparse(base_url).netloc
def get_links(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
try:
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
links = [a.get('href') for a in soup.find_all('a', href=True)]
return links
except requests.RequestException as e:
print(f"Failed to fetch {url}: {e}")
return []
def scrape_forums(starting_urls, max_depth=2):
visited = set()
external_links = set()
def scrape(url, depth):
if url in visited or depth > max_depth:
return
print(f"Scraping {url} at depth {depth}")
visited.add(url)
links = get_links(url)
for link in links:
full_url = urljoin(url, link)
if is_external(full_url, url):
external_links.add(full_url)
else:
scrape(full_url, depth + 1)
for url in starting_urls:
scrape(url, 1)
return external_links
def save_links_to_file(links, filename):
with open(filename, 'w') as f:
for link in links:
f.write(link + '\n')
if __name__ == '__main__':
starting_urls = [
# Add your starting forum URLs here
'http://example-forum.com/topic1',
'http://example-forum.com/topic2'
]
filename = 'external_links.txt'
external_links = scrape_forums(starting_urls)
save_links_to_file(external_links, filename)
print(f"Collected {len(external_links)} external links. Saved to {filename}.")
Komut dosyası nasıl çalışır:
- Fonksiyon
get_links
:- Verilen URL'ye bir istek gönderir.
- HTML'yi ayrıştırır ve tüm bağlantıları toplar.
- Fonksiyon
is_external
:- Bir bağlantının harici olup olmadığını kontrol eder.
- Fonksiyon
scrape_forums
:- Verilen URL'lerden başlayarak forumları yinelemeli olarak sıyırır.
- Tüm dış bağlantıları toplar.
- Fonksiyon
save_links_to_file
:- Toplanan tüm harici bağlantıları bir metin dosyasına kaydeder.
- Senaryonun ana kısmı:
- Başlangıç forum URL'lerini ayarlar.
- Kazıma işlemini başlatır.
- Toplanan bağlantıları bir dosyaya kaydeder.
Kullanım için talimatlar:
İlk forum URL'lerini şuraya ekleyin: starting_urls
liste.
Komut dosyasını çalıştırın:
python script_name.py
Toplanan bağlantılar şuraya kaydedilecektir: external_links.txt
dosya.
Bu komut dosyası, daha karmaşık ayrıştırma kuralları veya hata işleme gibi belirli ihtiyaçlara göre geliştirilebilir ve uyarlanabilir.
Yorumlar (0)
Burada henüz yorum yok, ilk siz olabilirsiniz!