Sitenin html kodlarını çekme

Merhabalar,

Ben bu sayfanın kodlarını çekmek istiyorum fakat sayfayı incele kısmında olan <meta name="twitter:url" ....> yer, selenium ile driver.page_source yapınca gelmiyor.

<meta name="twitter:url" ....> bu kısmı selenium yada requests modüllerinden biri ile siteden nasıl çekebilirim ?

verdiğiniz linkte twitter ile ilgili bir şey bulamadım, doğru olduğuna emin misiniz

login ekranı değil

kursun videosunun açıldığı sayfada twitter url kısmı var ama page_source yapınca o kısım gözükmüyor


( bu sayfada )

s=requests.get(url)
s1 = BeautifulSoup(s.content,"html5lib")
c1 =s1.find_all('meta',attrs={'name':'twitter:url'})
d1= c1[0]["content"]
print(d1)

bu ordaki url yi bulur

Olmuyor :frowning:

<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" id="__favicon" type="image/png" href="https://staticlms-akademi.akamaized.net/portal/assets/common/img/icons/gobito.png" sizes="64x64"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Akademi.net Course Player"/><link id="__appTouch" rel="apple-touch-icon" href="https://staticlms-akademi.akamaized.net/portal/assets/common/img/icons/gobito.png"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><script src="/portal/course/player/plugins/cinema8.player.api.min.js?v=49372832"></script><script src="/portal/course/player/plugins/wowslides.api.js?v=49372832"></script><title>Akademi</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],f=0,s=[];f<i.length;f++)l=i[f],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(c&&c(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/portal/course/player/";var i=this["webpackJsonpcourse-delivery"]=this["webpackJsonpcourse-delivery"]||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var c=a;t()}([])</script><script src="/portal/course/player/static/js/2.82a7f926.chunk.js"></script><script src="/portal/course/player/static/js/main.b741752b.chunk.js"></script></body></html>
AkademiYou need to enable JavaScript to run this app.

Bu sorunu nasıl çözebilirim ?

iki taned head var. find_all("head) diyince sadece üstteki head geliyor. Alttaki head i nasıl çekebilirim ?

tam olarak yazdığın koda bakabilirmiyim
head 2 tane olsa bile istediğin şeyi bulmak için spesifik bir kelime tanımlıyosun oda genelde tek oluyo

0 ı 1yapıp dene 0 bulduğu ilk texti ifade ediyo 1,2,3 diye gider

for döngüsüne aldım ama bir şey gelmedi

from selenium import webdriver

from selenium.webdriver.firefox.options import Options

from time import sleep

import requests

from bs4 import BeautifulSoup

firefox_options = Options()

# firefox_options.add_argument("--headless")

driver = webdriver.Firefox(firefox_options=firefox_options)

driver.get("https://www.btkakademi.gov.tr/portal/")

driver.delete_cookie("SESSION")

driver.add_cookie({"name":"SESSION","value":"value"})

driver.get("https://www.btkakademi.gov.tr/portal/course/s-f-rdan-ileri-seviye-python-programlama-5877#!/about")

sleep(2)

driver.find_element_by_class_name("button-1").click()

sleep(8)

Bir türlü “twitter:url” kısmını çekemedim

siteye girdemdiğim için deniyemiyorum ama requests ile giriş yaparsan verdiğim kodun çalışıyo olması gerek neden find “head” yaptığınıda anlamadım doğrudan hedefi sorgula

sayfa dinamik olduğu için html olarak bu geliyor

“twitter:url” kısmı ikinci head kısmının içinde. Acaba direkt ikinci head mi gelmiyor yoksa sadece “twitter:url” mi diye öğrenmek için yaptım ve ikinci head in komple gelmediğini gördüm

m1=s1.find_all(“meta”)
b1=m1[0][“twitter:url”]
bu şekilde bir dene ama kaçıncı metada veriyosa "twiter:urly"i 0 yerine onu girmelisn yoksa key eror hatası vericektir döngü kurup test ettirebilirsin

“twitter:url” kısmı 2. head in içinde. Ben selenium aracılığı ile page_source kodunu çalıştırdığımda gelen html’de 2.head kısmı gelmiyor. Bu nedenle twitter:url kısmını da çekemiyorum.