python爬蟲模塊之HTML下載模塊
阿新 • • 發佈:2018-06-12
com cond 判斷 session eth mock 表示 += HA
HTML下載模塊
該模塊主要是根據提供的url進行下載對應url的網頁內容。使用模塊requets-HTML,加入重試邏輯以及設定最大重試次數,同時限制訪問時間,防止長時間未響應造成程序假死現象。
根據返回的狀態碼進行判斷如果訪問成功則返回源碼,否則開始重試,如果出現異常也是進行重試操作。
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) #關於headers有個默認的方法 self.headers = default_headers() #mock_browser 表示使用useragent def get_source(self,url,retry=1): if retry>3: print("重試三次以上,跳出循環") 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(‘Unfortunitely -- An Unknow Error Happened, Please wait 0-6 seconds‘) time.sleep(random.randint(0, 6)) retry += 1 self.get_source(url,retry)
python爬蟲模塊之HTML下載模塊