0
我想刮一頁並收集所有鏈接。該頁面顯示30個條目並查看完整列表,點擊全部加載按鈕是必要的。點擊按鈕加載完整的HTML後,使用Selenium加載其他元素
我使用下面的代碼:
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.PhantomJS()
driver.get('http://www.christies.com/lotfinder/searchresults.aspx?&searchfrom=header&lid=1&entry=edgar%20degas&searchtype=p&action=paging&pg=all')
labtn = driver.find_element_by_css_selector('a.load-all')
labtn.click()
elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")
soup = BeautifulSoup(source_code, 'lxml')
url_list = []
for div in soup.find_all(class_ ='image-container'):
for childdiv in div.find_all('a'):
url_list.append(childdiv['href'])
print(url_list)
這裏的HTML標記
<div class="loadAllbtn">
<a class="load-all" id="loadAllUpcomingPast" href="javascript:void(0);">Load all</a>
</div>
我仍然得到原來的30個鏈接和初始密碼。看來我沒有正確使用硒,並想知道我做錯了什麼。
硒到目前爲止工作。節點JS已安裝,我設法做出截圖並將其保存到文件中。
我試過你的代碼。它第一次工作,然後它沒有。然後我增加了秒數,現在沒關係。謝謝 – zinyosrim