• python爬虫模块之HTML下载模块


    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)
    

      

  • 相关阅读:
    commonjs promise/A 规范
    Java之抽象类
    Java中多态的用法
    Java之方法的重写
    Java中static的用法
    java中this的用法
    Java概述
    二叉排序树的创建、插入、删除
    常用排序算法
    LeetCode小白菜笔记[2]:Reverse Integer
  • 原文地址:https://www.cnblogs.com/c-x-a/p/9175067.html
Copyright © 2020-2023  润新知