您好,登錄后才能下訂單哦!
這篇文章給大家介紹HTML下載模塊是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
該模塊主要是根據(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ò),可以把它分享出去讓更多的人看到。
免責(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)容。