电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python使用selenium爬蟲(chóng)知乎的方法示例

瀏覽:132日期:2022-07-06 18:50:26

說(shuō)起爬蟲(chóng)一般想到的情況是,使用 python 中都通過(guò) requests 庫(kù)獲取網(wǎng)頁(yè)內(nèi)容,然后通過(guò) beautifulSoup 進(jìn)行篩選文檔中的標(biāo)簽和內(nèi)容。但是這樣有個(gè)問(wèn)題就是,容易被反扒機(jī)制所攔住。

反扒機(jī)制有很多種,例如知乎:剛開(kāi)始只加載幾個(gè)問(wèn)題,當(dāng)你往下滾動(dòng)時(shí)才會(huì)繼續(xù)往下面加載,而且在往下滾動(dòng)一段距離時(shí)就會(huì)出來(lái)一個(gè)登陸的彈框。

這樣的機(jī)制對(duì)于通過(guò)獲取服務(wù)器返回內(nèi)容的爬蟲(chóng)方式進(jìn)行了限制,我們只能獲得前幾個(gè)回答,而沒(méi)辦法或許后面的回答。

所以需要使用 selenium 模擬真實(shí)瀏覽器進(jìn)行操作。

最終實(shí)現(xiàn)效果如下:

python使用selenium爬蟲(chóng)知乎的方法示例

前提是需要自行搜索教程安裝:

chromeDriver selenium 庫(kù)

想要使用下面代碼的可以直接修改 driver.get() 里的地址,然后爬取結(jié)果最終會(huì)存在message.txt文件中

代碼如下:

from selenium import webdriver # 從selenium導(dǎo)入webdriverfrom selenium.webdriver.common.by import By # 內(nèi)置定位器策略集from selenium.webdriver.support.wait import WebDriverWait # 用于實(shí)例化一個(gè)Driver的顯式等待from selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.action_chains import ActionChainsimport timeoption = webdriver.ChromeOptions()option.add_argument('headless')driver = webdriver.Chrome() # chrome_options=option 這個(gè)參數(shù)設(shè)置之后可以隱藏瀏覽器driver.get(’https://www.zhihu.com/question/22110581’) #修改這里的地址file = open('./messages.txt', 'w')def waitFun(): js = ''' let equalNum = 0; window.checkBottom = false; window.height = 0; window.intervalId = setInterval(()=>{ let currentHeight = document.body.scrollHeight; if(currentHeight === window.height){ equalNum++; if(equalNum === 2){clearInterval(window.intervalId);window.checkBottom = true; } }else{ window.height = currentHeight; window.scrollTo(0,window.height); window.scrollTo(0,window.height-1000); } },1500)''' # 這個(gè)暫停一下是因?yàn)橐却?yè)面將下面的內(nèi)容加載出,這個(gè) 1500 可以根據(jù)自己的網(wǎng)絡(luò)快慢進(jìn)行適當(dāng)?shù)恼{(diào)節(jié) # 這里需要往上移動(dòng)一下,因?yàn)椴煌弦苿?dòng)一下發(fā)現(xiàn)不會(huì)加載。 driver.execute_script(js)# selenium 可以獲取 瀏覽器中 js 的變量。調(diào)用的js returndef getHeight(nice): # 這里獲取 js 中的 checkBottom 變量,作為到底部時(shí)進(jìn)行停止。 js = ''' return window.checkBottom; ''' return driver.execute_script(js)try: # 先觸發(fā)登陸彈窗。 WebDriverWait(driver, 40, 1).until(EC.presence_of_all_elements_located( (By.CLASS_NAME, ’Modal-backdrop’)), waitFun()) # 點(diǎn)擊空白關(guān)閉登陸窗口 ActionChains(driver).move_by_offset(200, 100).click().perform() # 當(dāng)滾動(dòng)到底部時(shí) WebDriverWait(driver, 40, 3).until(getHeight, waitFun()) # 獲取回答 answerElementArr = driver.find_elements_by_css_selector(’.RichContent-inner’) for answer in answerElementArr: file.write(’==================================================================================’) file.write(’n’) file.write(answer.text) file.write(’n’) print(’爬取成功 ’+ str(len(answerElementArr)) +’ 條,存入到 message.txt 文件內(nèi)’)finally: driver.close() #close the driver

這套代碼實(shí)現(xiàn)了打開(kāi)知乎,然后自動(dòng)向下滑動(dòng),當(dāng)彈出登陸框時(shí),自動(dòng)點(diǎn)擊左上角關(guān)閉登陸框。然后繼續(xù)向下滑動(dòng),加載頁(yè)面,直到滑動(dòng)到底部。然后將內(nèi)容寫(xiě)在 message.txt 文件里面。

selenium 功能非常強(qiáng)大, 可以模擬人為在瀏覽器的操作,進(jìn)行輸入、點(diǎn)擊、滑動(dòng)、播放、暫停等等操作,因此也可以用來(lái)寫(xiě)一些腳本,用來(lái)刷學(xué)時(shí),搶課等等。

到此這篇關(guān)于python使用selenium爬蟲(chóng)知乎的方法示例的文章就介紹到這了,更多相關(guān)python selenium爬蟲(chóng)知乎內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 福建成考网-福建成人高考网| 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 一点车讯-汽车网站,每天一点最新车讯! | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 北京公寓出租网-北京酒店式公寓出租平台 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 电抗器-能曼电气-电抗器专业制造商 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 挨踢网-大家的导航!| 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 慈溪麦田广告公司,提供慈溪广告设计。 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 爆炸冲击传感器-无线遥测传感器-航天星百科 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 |