1. 程式人生 > >python爬蟲模塊之HTML下載模塊

python爬蟲模塊之HTML下載模塊

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下載模塊