'''
在爬取某些網站時有js加載的信息時,主要是js拼接的操作,
可以通過selenium來進行拼接,可以節省大量的破解JS還原操作的時間,
大大節省成本;
安裝selenium:
pip install Selenium
安裝chromedriver:
查看當前瀏覽器版本
輸入chrome://help/ 可以看到“版本 68.0.3440.106(正式版本) (32 位)”字樣
查看版本對應的驅動(翻牆摸摸噠)
https://sites.google.com/a/chromium.org/chromedriver/downloads
找到對應的驅動版本點擊進去,選擇下載
#https://chromedriver.storage.googleapis.com/index.html 所有版本庫的下載鏈接
對於window版本:(舉例)
直接解壓出里面的文件放到"C:/chromedriver"下,
將該路徑配置到環境變量中。
否則會報“selenium.common.exceptions.WebDriverException”的錯誤
>>> from selenium import webdriver
#頭三行可以不啟動瀏覽器提升速度
>>> option = webdriver.ChromeOptions()
>>> option.add_argument("headless")
>>> driver = webdriver.Chrome(chrome_options=option)
>>> driver.get("https://www.zymk.cn/2446/145198.html")
>>> driver.page_source#返回JS渲染過后網頁源代碼
#對於一些JS要一邊滑行一邊加載的情況我用以下方法來實現滑動動作。
>>> from selenium import webdriver
>>> from selenium.webdriver.common.action_chains import ActionChains #
>>> driver = webdriver.Chrome()
>>> driver.get("https://ac.qq.com/ComicView/index/id/629846/cid/1")
#到這里我們發現該網站是要滑動瀏覽器的滾動條來觸發js對圖片一個個進行加載,
#我們下面做個模仿拉動支滾動條的動作
>>> above = driver.find_element_by_id("mainControlNext")# 定位到要懸停的元素。
>>> ActionChains(driver).move_to_element(above).perform()# 對定位到的元素執行鼠標懸停操作
>>> driver.page_source#返回JS渲染過后網頁源代碼
#另處一種原理是借助JavaScript來控制瀏覽器的滾動條。
#WebDriver提供了execute_script()方法來執行JavaScript代碼。
#<!-- window.scrollTo(左邊距,上邊距); -->window.scrollTo(0,450)
#更多可參考:https://blog.csdn.net/lilongsy/article/details/76142497
>>> js="window.scrollTo(0,2000);"
>>> driver.execute_script(js)
>>> driver.quit()
對於爬蟲來說selenium主要用法已經完成,其他相關的selenium操作文檔參考如下:
中文:http://www.testclass.net/selenium_python/
'''