November 22, 2023

парсер ссылок на питоне(перепост)

удобный простой многопоточный парсер ссылок

в директории скрипта создаем файл domains.txt

кладем в него домены без http https (протокол можно исправить в 6 строке) запускаем... на выходе получаем ссылки в папке urls - по-доменно в файлах тхт

import threading, os
from usp.tree import sitemap_tree_for_homepage

os.mkdir('urls')
bad_domains = []

def parse_sitemap(domain):
  domain = domain.strip()
  url = f'http://{domain}/'
  sitemap = sitemap_tree_for_homepage(url)
  urls = {page.url for page in sitemap.all_pages()}
  urls = list(urls)
  if len(urls) > 0:
    with open("urls/" + domain+".txt", "w") as d:
      d.write("\n".join(urls))
  else:
    bad_domains.append(domain)

th = []
with open("domains.txt") as domains:
  for domain in domains:
    thread = threading.Thread(target=parse_sitemap, args=(domain, ))
    th.append(thread)
    thread.start()

for t in th:
  t.join()

if len(bad_domains) > 0:
  with open("bad_domains.txt", "w") as bdmns:
    bdmns.write("\n".join(bad_domains))