版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python網(wǎng)絡(luò)爬蟲:Selenium\hSeleniumSelenium是一個用于網(wǎng)站\h應(yīng)用程序自動化些行為,比如輸入文本、點擊、回車等。Selenium支持多種瀏覽器,本文以Chrome瀏覽器為例。chromedriver是一個驅(qū)動Chrome瀏覽器的驅(qū)動程序,針對不同的瀏覽器有不同的driver。優(yōu)點:瀏覽器能請求到的數(shù)據(jù),Selenium缺點:代碼量大、容易被反爬、性能低。筆者認為性能低、速度慢是其最大缺點。設(shè)置瀏覽器窗口的大小以及打開位置:fromseleniumimportfromselenium.webdriver.chrome.serviceimportfromselenium.webdriver.chrome.optionsimportOptionsurl'/hotels/396376.html#ctm_ref=hp_htl_pt_pro_01'serviceService(executable_path=r'D:\anaconda\Scripts\chromedriver.exe')指定chromedriveropt='user-agent="Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/opt.add_argument('--disable-blink-features=AutomationControlled')driverwebdriver.Chrome(service=service,options=opt)driver.maximize_window()#driver.set_window_position(1000, driver.get(url)接下來演示如何前進、后退、刷新網(wǎng)頁。需要注意的是,Seleniumdriver.get('/hotels/396376.html#ctm_ref=hp_htl_pt_pro_01')url2\h source=接下來用一個表格展示SeleniumSelenium抓取網(wǎng)頁信息是在開發(fā)者工具的Elements選項卡里,Selenium定位網(wǎng)頁元素主要通過元素的屬性值或者元素在HTMLIDdriver.find_element(By.ID,namedriver.find_element(By.NAME,classdriver.find_element(By.CLASS_NAME,driver.find_element(By.TAG_NAME,xpathdriver.find_element(By.XPATH,打開攜程任意一個酒店頁面,這里以上海虹橋賓館為例,打開開發(fā)者工具,點擊Elements選項卡左側(cè)的箭頭,然后將鼠標(biāo)懸停在頁面“顯示所有...條點評”鏈接上,點擊,開發(fā)者工具中就自動定位到了選中的標(biāo)簽,在選中的標(biāo)簽上右擊--Copy--CopyXPath,這樣就復(fù)制了該標(biāo)簽的XPath路徑,為“//*[@id="ibu-hotel-detail-head"]/div[2]/div[2]/div[1]/div/div/div[1]/p[2]”,然后調(diào)用click()方法點擊,代碼如下:element_comment='//*[@id="ibu-hotel-detail-操控網(wǎng)頁元素在網(wǎng)頁元素定位后才能執(zhí)行,Selenium作、鼠標(biāo)事件操作和鍵盤事件操作。常規(guī)操作包含文本清除、文本輸入、單擊元素、提交表單、獲取元素值等。下面以打開京東首頁并在搜索框輸入mate60Pro1import3fromseleniumimport
mon.byimport5mon.keysimportKeysurl=driver=input_element=driver.find_element(By.XPATH,input_element.send_keys('mate60Pro',上述例子分別執(zhí)行了打開京東首頁、窗口最大化、定位搜索框位置、輸入文本“mate60Pro”下面列出一些實際開發(fā)中常見的操作方式:driver.find_element(By.ID,清除Xdriver.find_element(By.ID,獲取元素在網(wǎng)頁中的坐標(biāo)位置,坐標(biāo)格式:{'y':20,driver.find_element(By.ID,driver.find_element(By.ID,判斷Xdriver.find_element(By.ID,“”“selected標(biāo)簽的選值”“”fromselenium.webdriver.support.selectimport根據(jù)下拉框的value鼠標(biāo)事件操作由Selenium的ActionChains類來實現(xiàn)。ActionChainsActionChains是鼠標(biāo)單擊事件,reset_actionsclick(element),elementclick_and_hold(element),elementcontext_click(element),elementdouble_click(element),elementdrag_and_drop_by_offset(element,x,y),element是某個元素對象,x是偏移的xy是偏移的y坐標(biāo)key_down(Keys.CONTROL,element),key_up(Keys.CONTROL,是由Keys定義的鍵盤事件,elementmove_by_offset(x,y),x是偏移的x坐標(biāo),y是偏移的move_to_element(element),elementmove_to_element_with_offset(element,x,是某個元素對象,x是偏移的x坐標(biāo),y是偏移的yelementsend_keys(value),valuesend_keys_to_element(element,value)element是某以上方法都是在ActionChains類所定義的類方法,若想使用這些操作方法,必須將ActionChains類實例化后才能調(diào)用。以B擊網(wǎng)頁中的“登錄”按鈕。1mon.action_chainsimportActionChainsurl=driver=element=driver.find_element(By.CLASS_NAME,'btn_primary上述代碼中,首先將ActionChains實例化,實例化的時候傳入driver對象。實例化之后就可以直接調(diào)用鼠標(biāo)事件操作方法,這些方法需要傳入element對象,element網(wǎng)頁中某個標(biāo)簽元素。最后再調(diào)用perform方法,這是一個執(zhí)行命令,因為鼠標(biāo)可以執(zhí)行拖拉、長按等持久性的操作,調(diào)用perform方法可以讓這個鼠標(biāo)操作馬上執(zhí)行。鍵盤事件是模擬人為按下鍵盤的某個按鍵,主要通過send_keys1mon.keysimportKeysurl=\hdriver=element=driver.find_element(By.XPATH,element.send_keys('我愛添加輸入空格鍵和“教程element.send_keys('教程ctrl+aelement.send_keys(Keys.CONTROL,ctrl+xelement.send_keys(Keys.CONTROL,ctrl+velement.send_keys(Keys.CONTROL,driver.find_element(By.ID,mon.action_chainsimportfromlxmlimportetreeclassdefinitself.opt=self.opt.debugger_address='user-agent="Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/self.opt.add_argument('--self.opt.add_argument('--disable-blink-features=AutomationControlled')self.service=self.driver=webdriver.Chrome(options=self.opt,self.fopen('攜程酒店評論.csv''a'encoding='utf-8-sig'self.writer=fieldnames=['score','brief_comment','content','time_location','room_type','room_type2','checkin', deffetch_source(self,value='//*[@id="ibu-hotel-detail-source=ActionChains(driver=self.driver).move_by_offset(400,#執(zhí)行js代碼,滾動條往下拉500js=Python網(wǎng)絡(luò)爬蟲:Selenium--Python網(wǎng)絡(luò)爬蟲:Selenium--以攜程酒店為例_selenium爬取攜程名宿信息-CSDN2024/7/9count= whilecount<next_button=source=self.driver.page_sourcedefparse_html(self,source):tree=div_list=tree.xpath('//*[@id="ibu_hotel_review"]/div/ul[2]/li/div/div[2]/div[2]/div[position()<fordivinscore=div.xpath('./div/div[2]/div[1]/div/div[1]/strong/text()')score=self.handle_list(score)brief_comment=div.xpath('./div/div[2]/div[1]/div/div[2]/text()')brief_comment=self.handle_list(brief_comment)content=div.xpath('./div/div[2]/div[2]/p/text()')content=self.handle_list(content)time_location=time_location=username=div.xpath('./div/div[1]/div[1]/div/p/text()')username=self.handle_list(username)room_type=div.xpath('./div/div[1]/div[2]/ul/li[1]/span/text()')room_type=self.handle_list(room_type)checkin=div.xpath('./div/div[1]/div[2]/ul/li[2]/span/text()')checkin=self.handle_list(checkin)room_type2=div.xpath('./div/div[1]/div[2]/ul/li[3]/span/text()')room_type2=self.handle_list(room_type2)comment_num=comment_num=self.handle_list(comment_num)dit={'brief_comment':brief_comment,'content':content,'time_location':time_locati
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷材料的科技創(chuàng)新與應(yīng)用考核試卷
- 2025年醫(yī)療病例管理協(xié)議
- 2025年度美發(fā)店客戶滿意度調(diào)查與服務(wù)提升合同8篇
- 2025年食堂檔口租賃及市場營銷合作合同范本3篇
- 2024門店超市經(jīng)營管理承包合同3篇
- 2025年度綠色建材采購與施工一體化項目承包合同4篇
- 2025年度智能家用空調(diào)安裝與維護服務(wù)協(xié)議書
- 2025年度模具制造設(shè)備租賃及節(jié)能改造合同4篇
- 二零二五年度版黃金首飾等抵押交易合同
- 2025年度綠色有機糧食購銷合作經(jīng)營協(xié)議
- 電纜擠塑操作手冊
- 浙江寧波鄞州區(qū)市級名校2025屆中考生物全真模擬試卷含解析
- IATF16949基礎(chǔ)知識培訓(xùn)教材
- 【MOOC】大學(xué)生創(chuàng)新創(chuàng)業(yè)知能訓(xùn)練與指導(dǎo)-西北農(nóng)林科技大學(xué) 中國大學(xué)慕課MOOC答案
- 勞務(wù)派遣公司員工考核方案
- 基礎(chǔ)生態(tài)學(xué)-7種內(nèi)種間關(guān)系
- 2024年光伏農(nóng)田出租合同范本
- 《阻燃材料與技術(shù)》課件 第3講 阻燃基本理論
- 2024-2030年中國黃鱔市市場供需現(xiàn)狀與營銷渠道分析報告
- 新人教版九年級化學(xué)第三單元復(fù)習(xí)課件
- 江蘇省南京鼓樓區(qū)2024年中考聯(lián)考英語試題含答案
評論
0/150
提交評論