溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HTML下載模塊是怎樣的

發(fā)布時(shí)間:2021-10-12 16:06:09 來(lái)源:億速云 閱讀:159 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹HTML下載模塊是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

HTML下載模塊

該模塊主要是根據(jù)提供的url進(jìn)行下載對(duì)應(yīng)url的網(wǎng)頁(yè)內(nèi)容。使用模塊requets-HTML,加入重試邏輯以及設(shè)定最大重試次數(shù),同時(shí)限制訪問時(shí)間,防止長(zhǎng)時(shí)間未響應(yīng)造成程序假死現(xiàn)象。

根據(jù)返回的狀態(tài)碼進(jìn)行判斷如果訪問成功則返回源碼,否則開始重試,如果出現(xiàn)異常也是進(jìn)行重試操作。

from requests_html import HTMLSession
from fake_useragent import UserAgent
import requests
import time
import random
class Gethtml():
   def __init__(self,url="http://wwww.baidu.com"):
       self.ua = UserAgent()
       self.url=url
       self.session=HTMLSession(mock_browser=True)
       #關(guān)于headers有個(gè)默認(rèn)的方法 self.headers = default_headers()
       #mock_browser 表示使用useragent
   def get_source(self,url,retry=1):
          if retry>3:
              print("重試三次以上,跳出循環(huán)")
              return None
          while retry<3:
              try:
                 req=self.session.get(url,timeout=10)
                 if req.status_code==requests.codes.ok:
                     return req.text
                 else:
                     time.sleep(random.randint(0,6))
              except:
                  print('An Error Happened, Please wait 0-6 seconds')
                  time.sleep(random.randint(0, 6))
                  retry += 1
                  self.get_source(url,retry)

關(guān)于HTML下載模塊是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI