Kısmen JS yapılı bağlantılar ve içinde bir şeyler olan bir web sitesini (Python/Selenium kullanarak) kazımaya çalışıyorum. Benim durumumda, bağlantı böyle bir görünüm elde etmek istiyorum: http://www.somesite.de/blah/ aşağıdaki biri basitçe URL'den doğrudan kazımak olamaz yana {{link_ID}}Python 3 webscraping sorunu (JS ile ilgili)
, benim Python kod gibidir:
def URL_from_JS (URL):
driver = webdriver.PhantomJS(executable_path=r'C:\###\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.get(URL)
link = driver.find_element_by_xpath('//a[@title="Zum Expose"]')
new_URL = link.get_attribute('href')
print(new_URL) #for testing reasons
driver.close()
return new_URL
Bu eserler amaçlandığı gibi, JS kodu görünürde yürütülmez, çünkü sonuç tam olarak yukarıda yazıldığı gibi (yani, http://www.somesite.de/blah/ {{link_ID}}). Öğenin görünür olmasını beklemek, Zaman Aşımı Hataları'ndan başka bir şeye yol açmadı. {{Link_ID}}, HTML kodunda bazı satır satırlarını içe aktarılan bazı harici .js dosyasında kullanılan bir değişkeni referans alır.
İçe aktarılan Javascript kodunu manuel olarak çalıştırmam gerekir mi? Kodumun neden amaçlandığı gibi çalışmadığına dair bir fikrim yok ...
Yardımlarınız için teşekkürler!
"JS" dosyasından "Python" koduna dize nasıl gönderilir? – Andersson
Sorunuzu gerçekten anlama: Python'a vom JS dizeleri yollamıyorum. Büyük olasılıkla JS kodu driver.execute_script kullanarak Python'da çalıştırılacak, ancak Selenium'un nasıl çalıştığını anladığımda, bu aslında gereksiz olmalı. – Boandlkramer
tamam .... Burada {{link_ID}} 'nereden geliyor? 'Href = "http://www.somesite.de/blah/{{link_ID}}" – Andersson