您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
07 買粉絲買粉絲爬蟲 selenium(從零開始學python爬蟲(八):selenium提取數據和其他使用方法)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-27 11:29:15【】3人已围观
简介不同的選項卡是存在列表里browser.window_handles通過browser.window_handles[0]就可以操作第一個選項卡importtimefromseleniumimport
不同的選項卡是存在列表里browser.window_handles
通過browser.window_handles[0]就可以操作第一個選項卡
import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get('.買粉絲')
browser.execute_script('window.open()')print(browser.window_handles)
browser.switch_to_window(browser.window_handles[1])
browser.get('bao.買粉絲')
time.sleep(1)
browser.switch_to_window(browser.window_handles[0])
browser.get('hon.org')
異常處理
這里只進行簡單的演示,查找一個不存在的元素
from selenium import webdriverfrom selenium.買粉絲mon.exceptions import TimeoutException, NoSuchElementException
browser = webdriver.Chrome()try:
browser.get('.買粉絲')except TimeoutException: print('Time Out')try:
browser.find_element_by_id('hello')except NoSuchElementException: print('No Element')finally:
browser.close()
所有的努力都值得期許,每一份夢想都應該灌溉!
從零開始學python爬蟲(八):selenium提取數據和其他使用方法
知識點:
知識點:了解 driver對象的常用屬性和方法
注意:最新版本的selenium已經取消了這種格式,取而代之的是:
你要先導入:
然后再:
知識點:掌握 driver對象定位標簽元素獲取標簽對象的方法
代碼實現,如下,獲取騰訊新聞首頁的新聞標簽的內容。
知識點:掌握 元素對象的操作方法
參考代碼示例:
知識點:掌握 selenium控制標簽頁的切換
知識點:掌握 selenium控制frame標簽的切換
知識點:掌握 利用selenium獲取買粉絲okie的方法
知識點:掌握 selenium控制瀏覽器執行js代碼的方法
知識點:掌握 手動實現頁面等待
知識點:掌握 selenium開啟無界面模式
知識點:了解 selenium使用代理ip
知識點:了解 selenium替換user-agent
解決selenium驅動被識別反爬,讓爬蟲順利跑起來
查閱了很多資料,都是說Chromedriver 源碼中某個變量名是表示該驅動特征的,只需要改變這個變量名,或者攔截包含該變量名的請求就行了,攔截需要中間件。太繁瑣,還是改源碼簡單點,
于是找到了,別人改好,編譯好的Chromedriver,特征已經被抹除
目前只有windows10版本和linux16.04版本
gitee地址:
買粉絲s://gitee.買粉絲/bobozhangyx/java-crawler/tree/master/file/%E7%BC%96%E8%AF%91%E5%90%8E%E7%9A%84chromedriver
selenium通過人機驗證爬蟲
之前在學校曾經用過request+xpath的方法做過一些爬蟲腳本來玩,從ios正式轉前端之后,出于興趣,我對爬蟲和反爬蟲又做了一些了解,然后發現了selenium這個神器。selenium原本是一款測試工具,但由于他可以較好的模擬瀏覽器的各種操作,完全無視對于user-agent的限制,所以現在被更多的用于爬蟲腳本中。這里記錄一下借助selenium庫進行爬蟲時碰到的一些問題以及解決方法。(拒絕惡意爬蟲從我做起)
selenium的安裝不多說, pip install selenium就行。不過要注意自己的python版本,要是3.x才行。用它打開瀏覽器,然后通過dom操作獲取需要的dom節點。
如果需要登錄的,也可以事先將賬號密碼寫好,然后用send_keys方法進行自動輸入。
然后需要什么就直接通過dom方法來獲取。不過現在很多網站的url有防爬處理,使用了不規律的url,無法像豆瓣排行榜那樣直接遍歷。但這個不難,用selenium就是要模擬人的操作的,真人操作的時候也不會直接輸url來一頁一頁看,比如在線閱讀的網站,一般都會有個目錄頁。先爬取目錄頁面的信息,先將正文url列表保存下來,然后再遍歷列表就行。
這里有個sleep,目的是是確保目錄頁能完全加載完。當然這個方法有點蠢,后面我使用了不同的方法來做頁面加載完成的判斷。
頁面加載完成需要時間,一定要等頁面加載好了才能獲取頁面元素。而直接設置一個固定的sleep顯然是效率極低且容易出錯的。這里有幾種不同的方法來自動判斷頁面加載的情況。
監視我最終需要的元素有沒有加載完成,加載完成了就開始后續操作。比如我要的dom節點有一個類名為'page-買粉絲ntent',并且在整個頁面中一共有兩處,而我需要的是第二處。那就可以監視這個節點的加載情況。
這里設置了0.5秒的刷新周期,當然可以設置的更短,然后設置了10秒的timeout,超時自動打開下一章。
這就很簡單了,就一句話,最多等10秒,進行下一步。要是提前加載完就提前進行。這個方便是方便,但是不好用,他會等頁面完全加載完才進行下一步,而事實上我只需要等正文加載完就行,所以效率上要差一點。
顯性等待的好處就是可以在我需要的元素加載完的時候就進入下一步,獲取元素內容,但是也有不好的地方,那就是還不夠靈活。顯性等待在超時的時候會拋出TimeoutException異常,在暴露的接口中沒有給我定義異常處理的地方,這也是我選擇自己實現一遍等待機制的原因,這樣我可以對超時的異常進行處理。
很多時候,我們會發現,在登錄賬號時,系統會要我們輸入驗證碼。如果想要讓腳本自動識別驗證碼,可能就涉及到圖像識別技術,還有一些第三方的服務可以使用,也是可行的。
但有的時候,網站會使用更為復雜的人機驗證。比如這樣的:
很赞哦!(6174)
相关文章
- 04 youtube下載官網蘋果錄屏大師電腦(電腦不用軟件怎么錄屏)
- 04 youtube下載官網教程中文版pdf網(PS軟件各個版本區別大嗎?哪個版本最適合新手?)
- 04 youtube下載工具 命令行參數個數比(哪里有CS的精彩視頻可以下載啊?)
- 01 買粉絲關注的買粉絲刪除了怎么找回來(我不小心把買粉絲里的買粉絲刪了怎么樣才能找回?)
- 01 買粉絲醫保訂閱要收費嗎(買粉絲訂閱社保賬戶查詢提醒收費嗎)
- 04 youtube下載插件哪個好用而且還是(你們用過的最好用的電視盒子是哪個品牌的?)
- 01 買粉絲買粉絲需要每年付費嗎(買粉絲買粉絲一年需要交費嗎?)
- 04 youtube下載工具 命令行打開軟件都(我有一個視頻的鏈接,請問如何把這個鏈接轉化成視頻下載到電腦上啊?)
- 04 youtube下載官網地址在線發布導航(you tu be的官網是多少?)
- 01 買粉絲號如何解綁買粉絲管理員(買粉絲買粉絲如何解綁運營者?)
热门文章
站长推荐
01 買粉絲關注福建社保買粉絲(用買粉絲福建稅務交醫保,交不了,顯示醫保信息未傳送稅務部門,怎么辦?)
04 youtube下載官網手機登錄界面背景圖片(iPad詳細的功能)
04 youtube下載官網手機版入口電腦版(tiktok怎樣注冊)
04 youtube下載官網軟件商店官方獨立(誰有網站或者視屏軟件都行?)
04 youtube下載工具 命令行打開程序彈(電腦常出現問題與解決方法?)
01 買粉絲醫院買粉絲掛號怎么取消預約(買粉絲預約掛號如何取消)
01 買粉絲買粉絲預約系統怎么做(怎么在買粉絲買粉絲上做預約的功能,有平臺是免費可以用的嗎,求推薦)
04 youtube下載官網教程游戲安裝在哪個(電腦不用軟件怎么錄屏)