나는 웹 스크래핑을 배우려고 노력하고있다 (나는 초보자이다). 일부 웹 사이트 (예 : Quora)에서 버튼을 클릭하면 새 요소가 화면에 표시됩니다. 새 요소의 페이지 소스를 가져올 수 없습니다. 나는 새로운 팝업의 페이지 소스를 얻고 모든 요소를 얻을 수 있기를 원한다. 내 문제를 이해하려면 Quora 계정이 있어야합니다.Python Webscraping Selenium and BeautifulSoup (모달 윈도우 콘텐트)
from selenium import webdriver
from bs4 import BeautifulSoup
from unidecode import unidecode
import time
sleep = 10
USER_NAME = 'Insert Account name' #Insert Account name here
PASS_WORD = 'Insert Account Password' #Insert Account Password here
url = 'Insert url'
url2 = ['insert url']
#Logging in to your account
driver = webdriver.Chrome('INSERT PATH TO CHROME DRIVER')
driver.get(url)
page_source=driver.page_source
if 'Continue With Email' in page_source:
try:
username = driver.find_element(By.XPATH, '//input[@placeholder="Email"]')
password = driver.find_element(By.XPATH, '//input[@placeholder="Password"]')
login= driver.find_element(By.XPATH, '//input[@value="Login"]')
username.send_keys(USER_NAME)
password.send_keys(PASS_WORD)
time.sleep(sleep)
login.click()
time.sleep(sleep)
except:
print ('Did not work :(.. Try again')
else:
print ('Did not work :(.. Try different page')
이
다음 부분 ("시도")는 관련 웹 페이지로 이동됩니다에 대한 정보를 수집 :
난 당신이 BeautifulSoup로, 셀레늄 및 chromedriver를 사용하여 사용할 수있는 코드의 일부가 특정 질문의 추종자. 내가 추종자 요소의 페이지 소스를 얻을 때
for url1 in url2:
driver.get(url1)
source = driver.page_source
soup1 = BeautifulSoup(source,"lxml")
Follower_button = soup1.find('a',{'class':'FollowerListModalLink QuestionFollowerListModalLink'})
Follower_button2 = unidecode(Follower_button.text)
driver.find_element_by_link_text(Follower_button2).click()
####Does not gives me correct page source in the next line####
source2=driver.page_source
soup2=BeautifulSoup(source2,"lxml")
follower_list = soup2.findAll('div',{'class':'FollowerListModal QuestionFollowerListModal Modal'})
if len(follower_list)>0:
print 'It worked :)'
else:
print 'Did not work :('
는 그러나, 나는 메인 페이지가 아닌 추종자 요소의 페이지 소스를 그만 둘. 누구든지 날 팝업 팔로워 요소의 페이지 소스를 얻을 수 있습니까 ?? 나는 여기서 무엇을 얻지 못 하느냐.
참고 : 다시 또는 내 문제를 보는 또 다른 방법은 (있는 경우) 당신 Quora의 계정에 로그인 한 후 추종자 질문에 이동하는 것입니다 . 화면 오른쪽 하단의 팔로어 버튼을 클릭하면 팝업이 표시됩니다. 본질적으로이 팝업의 요소를 얻는 것이 나의 문제이다.
업데이트 - 좋아 그래서 난 좀 읽고하고 윈도우가 모달 창처럼 보인다. 누구든지 모달 윈도우의 내용을 가져 오는 것을 도와 줄 수 있습니까?
창 핸들로 전환 해보십시오. 아마도? 사실 소스가 이미 존재하기 때문에 요소가 보이지 않기 때문에 불가능합니다. – ProFan
나는 이미 그것을 시도했다. 하나의 핸들 만있는 것 같습니다. 따라서 전환이 불가능합니다. :( – Prometheus