第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

用自動(dòng)化測(cè)試工具selenium來(lái)揭露騙局的真相

標(biāo)簽:
JavaScript

前几天写了

step是页面滚动的像素,step每次会增加,这样就实现了页面自动向下滚动。

关闭chrome浏览器自动加载图片

浏览器默认是加载图片的,为了提高速度,此处要禁止chrome加载图片

options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
options.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=options)

使用headless模式运行chrome

发现加载了太多的动态之后,浏览器还是会卡死,这时可以考虑用headless模式运行chrome。headless模式下的chrome不会出现用户图形界面,因此速度更快。

options = webdriver.ChromeOptions()
options.add_argument('headless')

删除页面上元素

在使用了headless模式后,发现浏览器最后还是越来越慢,应该是因为页面上元素太多,渲染不过来造成的。这时想到了用javascript删除页面元素。注意,需要保留最后一个li元素,以便计算max_id。

var nodeList=document.querySelectorAll("#list-container > ul > li");for(var i=0;i<nodeList.length-1;i++){
  nodeList[i].remove()
}

将这段JS代码在selenium中运行即可。同时由于页面元素会被删除,页面滚动的代码也要做一些调整,需要先返回顶部,再向下滚动,以防下拉刷新没有触发。

    browser.execute_script("document.documentElement.scrollTop=0")
    browser.execute_script("document.documentElement.scrollTop=1600")

爬取结果分析

在爬取的动态中搜索,还是找不到“大神带我来搬砖”


爬取结果分析

这次的代码其实有几个缺陷:

  1. selenium无法取得页面动态加载状态,因此需要设置一个较长的sleep时间,保证页面加载完成。

  2. 因为每次需要保留最后一个li元素,爬取下来的动态有重复的。

源码

from selenium import webdriverimport time

options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
options.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=options)
browser.set_page_load_timeout(60)

browser.get("https://www.jianshu.com/users/5aa8494a18c8/timeline")
time.sleep(5)

file = open("browser.txt",'w',encoding='utf-8')while True:
    text = browser.find_element_by_xpath("""http://*[@id="list-container"]/ul""").text
    file.write(text)    # remove li elements
    js='''var nodeList=document.querySelectorAll("#list-container > ul > li");for(var i=0;i<nodeList.length-1;i++){nodeList[i].remove()}'''
    browser.execute_script(js)    
    # scroll
    browser.execute_script("document.documentElement.scrollTop=0")
    browser.execute_script("document.documentElement.scrollTop=1600")
    time.sleep(10)    
    if '加入了简书' in text:
        print("end")        breakfile.write(text)
file.close()



作者:大神带我来搬砖
链接:https://www.jianshu.com/p/fdb3cf39f295

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消