python : Requests modülü ve BeautifulSoup modullerinin kullanımı

yuathay

Katılımcı Üye
7 Mar 2023
377
180
Gitti
Python:
#status code : 200 ise tüm verileri alabiliriz
# 403 ise bizi engelliyor olabilir status code'lara ufaktan goz gezdirebilirsiniz
#kodlarda hata alırsanız :
import requests
from bs4 import BeautifulSoup
headers_parametre = {"what is my user agent yaz internete cıkan degeri buraya yaz"}
a=requests.get("https://youtube.com",headers=headers_parametre)
#her requests.get koduna headers=headers_parametre degerini ekleyin hata almıyorsanız burayı geçebilirsiniz
#-----------------------------
#bazen hatalar olabiliyor ufak bi araştırma ile anlarsınız ne oldugunu direk hata cıktısını tarayıcıya yapıstırın
import requests
from bs4 import BeautifulSoup

#a = requests.get("https://youtube.com")
#soup = BeautifulSoup(a,'html.parser')
#print(soup.text)#hatalı kod
#hatalı koddan cıkan hata mesajını internette arattım ve boyle yazmam gerekiyormuş :

a = requests.get("https://youtube.com")
soup = BeautifulSoup(a.text,'html.parser')
print(soup)
#---------------------------------
#icerigi okunaklı hale getirmek

import requests
from bs4 import BeautifulSoup

#bu kodu oncelikle tek basına calistir
a = requests.get("https://youtube.com")
b = BeautifulSoup(a.text,'html.parser')
#print(b)

#sonrada bu kodu calistir
a = requests.get("https://youtube.com")
b = BeautifulSoup(a.text,'html.parser')
print(b.prettify()) #html icerigini düzenli bir şekilde yazdırır
#-----------------------------------------------------
import requests
from bs4 import BeautifulSoup
#etiketteki textleri almak mesela <a href="site.com"> etiketini almak istiyoruz
#burası düzensiz hali:
d = requests.get("https://youtube.com")
soup = BeautifulSoup(d.text,'html.parser')
a_lar = soup.find_all('a')
print(a_lar)

#düzenli hali:

for link in a_lar:
    href = link.get('href')
    if href and href.startswith("http"):
        print(href)
#-----------------------------------------------------
import requests
from bs4 import BeautifulSoup

a = requests.get("https://youtube.com")
b = BeautifulSoup(a.content,'html.parser')
#buda baska bir kullanım secenegi

print(b.div) # div etiketini verir
print(b.find_all('div'))#butun div etiketlerini verir


for i in b.text:
    print(b.div) #div etiketinin text halini verir

for i in b.text:
    print(b.find_all('div')) #bütün div etiketlerinin text halini verir
#-----------------------------------------------------
import requests
from bs4 import BeautifulSoup
#class'a yonelik icerik cekmek
#web sitesi icin yaparsam karısık olur burdan daha iyi anlarsınız
içerik = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1 class="birinci">merhaba dünya</h1>
    <p class="ikinci">bugun cok güzel bir gün</p>
    <p class="ücüncü">bugun hava kotu</p>
</body>
</html>"""
#simdi biz normalde
print(BeautifulSoup(içerik,'html.parser').find_all("p")) # diyerek butun p etiketlerini alırız
#ama biz belirli bir class'a gore almak istiyorsak :
print(BeautifulSoup(içerik,'html.parser').find_all("p",{"class":"ikinci"}))
#veya
print(BeautifulSoup(içerik,'html.parser').find_all("p",{"class":"ücüncü"}))
#yazabiliriz

#siteye yapalim :
a = requests.get("https://youtube.com").content
print(BeautifulSoup(a,'html.parser').find_all("div",{'class':'details flex-1'}))


#arayada şu bilgileri koyalım:

#contents nedir
a = BeautifulSoup(içerik,'html.parser')
print("\n\ncontents içeriği :\n",a.contents)

#text nedir
a = BeautifulSoup(içerik,'html.parser')
print("\n-----------------\ntext içeriği :",a.text)
#------------------
import requests
from bs4 import BeautifulSoup
#id değerlerinide şoyle alabiliriz :
içerik = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1 id="birinci">merhaba dünya</h1>
    <p id="ikinci">bugun cok güzel bir gün</p>
    <p id="ücüncü">bugun hava kotu</p>
</body>
</html>"""
print(BeautifulSoup(içerik,'html.parser').find_all("p",{"id":"ikinci"}))

#bir sitede deneyelim :
a = requests.get("https://www.youtube.com").content
print(BeautifulSoup(a,'html.parser').find_all("div",{"id":"primary-info"}))
#-----------------------------------
#status code'lar :

import requests
from bs4 import BeautifulSoup

linkler = ["youtube","google","linkedin"]
#linkedin hesabın yoksa farklı bir status_code değeri ile karsılasabilirsin (niye farklı bir deger geldi deme)
for i in linkler:
    url = f"https://{i}.com"
    a = requests.get(url).status_code,'html.parser'
    print(f"{i}'nin status codu : {a}")


#-----------------------------------
import requests
from bs4 import BeautifulSoup

linkler = ["youtube","google","linkedin"]
#linkedin hesabın yoksa farklı bir status_code değeri ile karsılasabilirsin (niye farklı bir deger geldi deme)
for i in linkler:
    url = f"https://{i}.com"
    a = BeautifulSoup(requests.get(url).text,'html.parser')
    print(f"{i}'nin <span> değerleri : \n--------------------------\n{a.find_all('span')}\n\n\n\n\n")
    #span değeri yerine p  h1  title değerleri gibi tagler yazılabilir
#-----------------------------------
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.