BeautifulSoup Link Çekme Hakkında


#1

Merhaba arkadaşlar Yine bir sorunla karşınızdayım…Ben sitelerde açık taraması yapan bir program geliştiriyorum büyük ihtimalle bunu baya geniş yapıp kendi sitelerinde kullanması için insanlara dağıtacağım ama şuanlık bir sorunum var…

import requests
from bs4 import BeautifulSoup
from threading import Thread
from time import sleep

site=input("Lütfen Taratılacak Siteyi Giriniz: ")

siteliste=[]

sqlbulunansiteler=[]
xssbulunansiteler=[]

def sitelericek():
    siteyebaglan = requests.get(site)
    if siteyebaglan.status_code==200:
        site_kaynak_kod = siteyebaglan.text
        soup = BeautifulSoup(site_kaynak_kod, "html.parser")
        for i in soup.find_all("a"):
            a=i.get("href")
            print(a)
            if a in siteliste or "/http://" in a:
                continue
            if not "http://" in a or not "https://" in a and "id=" in a or "ID=" in a :
                siteliste.append("http:"+a)
            if "http" in a or  "https:" in a:
                siteliste.append(a)
    else:
        print("Siteye Bağlanılamadı Programdan Çıkılıyor.")
        exit()
    print(siteliste)

Linkleri Böyle Çekiyorum Sorun Yok Fakat Misal sitenin başında https:// varsa http: eklemesin diyorum fakat şu if bloğundaki not “http://” in a or not “https://” in a kısmı çalışmıyor…

Şöyle Bir Çıktı Veriyor.

http:https://www.HugeDomains.com/shopping_cart.cfm?d=AnimalIbera&e=com


#2

and, or ve not'ın öncelikleri farklıdır, buna göre ifadenizi parantezler ile tekrardan yazmanız gerekebilir: https://docs.python.org/3/reference/expressions.html#operator-precedence