国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

requests或selenium獲取網(wǎng)頁內(nèi)容不全問題(非異步加載)

這篇具有很好參考價(jià)值的文章主要介紹了requests或selenium獲取網(wǎng)頁內(nèi)容不全問題(非異步加載)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

最近用python做腳本的時(shí)候,發(fā)現(xiàn)了一個(gè)問題,就是獲取的網(wǎng)頁并不全??赡茉蛑皇琼撁鎯?nèi)容過大,無法加載全部到內(nèi)存中
下面的解決方法只針對(duì)靜態(tài)加載頁面(有的網(wǎng)頁是動(dòng)態(tài)加載數(shù)據(jù),需要查看對(duì)應(yīng)的js請(qǐng)求或者用selenium來獲取就好)。
解決方法為放入文件里,再讀取即可

使用selenium,代碼如下

browser = webdriver.Chrome(service=webdriver_service, options=option)
browser.get(url)
browser.implicitly_wait(10) # 等待頁面加載完畢,最多等待10s
# print(browser.page_source)
# str(browser.page_source)
soup = BeautifulSoup(browser.page_source,"lxml")
soup.find(xxxx)

soup.find(xxxx) 獲取不到,但是在網(wǎng)頁上F12查找元素是有的。于是查看network,但是并未發(fā)現(xiàn)有ajax異步數(shù)據(jù),只有靜態(tài)數(shù)據(jù),于是打印頁面源碼,print(browser.page_source),發(fā)現(xiàn)獲取的 html 頁面內(nèi)容并不全,并且每次獲取的html 內(nèi)容不一樣,每次都是獲取到一半就沒有了。轉(zhuǎn)成str打印也是一樣的效果。于是懷疑是selenium的問題,又換用requests

source_html = requests.get(url)
soup = BeautifulSoup(browser.source_html,"lxml")
soup.find(xxxx)

還是一樣的效果,還是找不到。
以為是頁面沒加載完畢,sleep(3) 睡眠3s依舊不行
搜索后終于在一個(gè)博客找到些線索,于是用下列方式,問題就解決了.
把獲取到的頁面內(nèi)容保存到文件里,再讀取,就拿到了??赡茉蚴琼撁孢^大,python的輸出限制長度。

tmp_html = "temp.html"
source_html = requests.get(url)
with open(tmp_html, "w+", encoding="utf-8") as f:
    f.write(source_html.text)
    f.seek(0)
    html_handle = f.read()
soup = BeautifulSoup(html_handle,"lxml")
soup.find(xxxx)

如果文件過大無法寫入,可使用requests.iter_content寫

with open(filename, 'wb') as fd:
    for chunk in r.iter_content(chunk_size):
        fd.write(chunk)

這次soup.find(xxxx)找到了,并且文件里也是完整的html內(nèi)容。
如果文件過大,soup = BeautifulSoup(html_handle,“l(fā)xml”) Beautifulsoup無法加載,可以使用使用SAX解析器

參考鏈接

requests.get()獲取信息不完整
使用BeautifulSoup加載大型xml文件文章來源地址http://www.zghlxwxcb.cn/news/detail-824322.html

到了這里,關(guān)于requests或selenium獲取網(wǎng)頁內(nèi)容不全問題(非異步加載)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python通過selenium爬取網(wǎng)頁信息,python獲取瀏覽器請(qǐng)求內(nèi)容,控制已經(jīng)打開的瀏覽器

    python通過selenium爬取網(wǎng)頁信息,python獲取瀏覽器請(qǐng)求內(nèi)容,控制已經(jīng)打開的瀏覽器

    背景:通過python中直接get或者urlopen打開一些有延遲加載數(shù)據(jù)的網(wǎng)頁,會(huì)抓取不到部分信息。 1. 命令行打開chrome,并開啟調(diào)試端口 (前提,找到chrome安裝目錄,找到chrome.exe所在路徑,添加到環(huán)境變量中,例如我的是C:Program FilesGoogleChromeApplication) remote-debugging-port指定遠(yuǎn)程調(diào)試

    2024年02月16日
    瀏覽(97)
  • selenium常見問題(網(wǎng)頁縮放、滑動(dòng),元素獲取不到......)

    selenium常見問題(網(wǎng)頁縮放、滑動(dòng),元素獲取不到......)

    解決辦法: 方法一: element = driver.find_element_by_xpath(\\\"表達(dá)式\\\") driver.execute_script(\\\"arguments[0].click();\\\", element) 方法二: element = driver.find_element_by_xpath(\\\'表達(dá)式\\\') webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform() 方法一 使用js腳本直接操作: js = \\\"var q=document.getElementById

    2024年02月13日
    瀏覽(25)
  • selenium爬取網(wǎng)頁內(nèi)容,對(duì)網(wǎng)頁內(nèi)容進(jìn)行點(diǎn)擊

    selenium爬取網(wǎng)頁內(nèi)容,對(duì)網(wǎng)頁內(nèi)容進(jìn)行點(diǎn)擊

    所需要的庫 首先明確所要爬取的網(wǎng)頁,選擇調(diào)用方法,增加無界面模式的無頭參數(shù),然后調(diào)用,獲取網(wǎng)址,使頁面放大,為最大化窗口 獲取數(shù)據(jù)運(yùn)用XPATH函數(shù),將獲取的數(shù)據(jù)作為item,運(yùn)用XPATH函數(shù)獲取, ? 模仿人點(diǎn)擊下一頁,運(yùn)用 for語句,每10個(gè)一點(diǎn),停留5秒 同樣尋找下一

    2024年01月17日
    瀏覽(25)
  • selenium+requests 實(shí)現(xiàn)網(wǎng)頁跳轉(zhuǎn)登錄及爬取

    selenium+requests 實(shí)現(xiàn)網(wǎng)頁跳轉(zhuǎn)登錄及爬取

    本項(xiàng)目設(shè)立目的是為了通過腳本,實(shí)現(xiàn)學(xué)校體育場館的“秒約”。便于同學(xué)瞬間搶到熱門時(shí)間段的體育場 。 服務(wù)器工作峰值時(shí)瀏覽器可能會(huì)卡死,因此例如selenium等需要加載瀏覽器界面的庫可能會(huì)降低效率 。 采用requests庫直接向服務(wù)器發(fā)送請(qǐng)求,效率更高。 通過selenium庫模

    2024年02月04日
    瀏覽(18)
  • java獲取request請(qǐng)求頭內(nèi)容

    注意一下 request 和 httpServletRequest 的類型

    2024年02月12日
    瀏覽(19)
  • Python+Requests模塊獲取響應(yīng)內(nèi)容

    Python+Requests模塊獲取響應(yīng)內(nèi)容

    響應(yīng)包括響應(yīng)行、響應(yīng)頭、響應(yīng)正文內(nèi)容,這些返回的響應(yīng)信息都可以通過Requests模塊獲取。這些 獲取到的響應(yīng)內(nèi)容也是接口測(cè)試執(zhí)行得到的實(shí)際結(jié)果。 獲取響應(yīng)行 獲取響應(yīng)頭 獲取其它響應(yīng)信息 代碼示例: 依據(jù)不同響應(yīng)正文內(nèi)容的情況,Requests模塊有四種不同的處理方式

    2024年02月16日
    瀏覽(21)
  • 使用Selenium抓取網(wǎng)頁動(dòng)態(tài)內(nèi)容

    Selenium 是一個(gè)自動(dòng)化測(cè)試工具,支持多種瀏覽器,包括 Chrome、Firefox、Edge 等,具有強(qiáng)大的瀏覽器自動(dòng)化能力,可以用于Web應(yīng)用程序的自動(dòng)化測(cè)試、數(shù)據(jù)挖掘等領(lǐng)域。Selenium的主要特點(diǎn)有: 支持多種瀏覽器 Selenium支持多種瀏覽器,包括Chrome、Firefox、Edge、Safari等,可以滿足不同

    2023年04月25日
    瀏覽(34)
  • 自動(dòng)化測(cè)試: Selenium 自動(dòng)登錄授權(quán),再 Requests 請(qǐng)求內(nèi)容

    自動(dòng)化測(cè)試: Selenium 自動(dòng)登錄授權(quán),再 Requests 請(qǐng)求內(nèi)容

    Selenium 自動(dòng)登錄網(wǎng)站、截圖及 Requests 抓取登錄后的網(wǎng)頁內(nèi)容。一起了解下吧。 Selenium: 支持 Web 瀏覽器自動(dòng)化的一系列工具和庫的綜合項(xiàng)目。 Requests: 唯一的一個(gè)非轉(zhuǎn)基因的 Python HTTP 庫,人類可以安全享用。 ? Selenium 實(shí)現(xiàn),相當(dāng)于模擬用戶手動(dòng)打開瀏覽器、進(jìn)行登錄的過程。

    2024年01月21日
    瀏覽(19)
  • 使用Python和Selenium抓取網(wǎng)頁內(nèi)容

    使用Python和Selenium抓取網(wǎng)頁內(nèi)容

    采集動(dòng)態(tài)網(wǎng)頁是困擾許多人的難題,不妨使用 Python 和 Selenium抓取網(wǎng)頁數(shù)據(jù)。 微信搜索關(guān)注《Python學(xué)研大本營》,加入讀者群,分享更多精彩 你是否對(duì)從網(wǎng)站提取數(shù)據(jù)感興趣,但發(fā)現(xiàn)自己被網(wǎng)絡(luò)抓取的復(fù)雜性所困擾?不要害怕,我們?cè)谶@篇文章中將展示如何利用 Selenium 和

    2024年02月07日
    瀏覽(51)
  • 模擬動(dòng)態(tài)加載網(wǎng)頁數(shù)據(jù)Selenium,Puppeteer,WebDriver,Requests-HTML

    模擬動(dòng)態(tài)加載網(wǎng)頁數(shù)據(jù),你可以使用以下工具: Selenium:Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具,它可以模擬用戶在瀏覽器上的操作,包括點(diǎn)擊、滾動(dòng)、填寫表單等。因此,它也可以用于爬取那些動(dòng)態(tài)加載內(nèi)容的網(wǎng)頁。Selenium支持多種瀏覽器,并且提供了多種編程語言的接口

    2024年04月25日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包