python爬虫模块之HTML下载模块

Posted 一起来学python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

  

以上是关于python爬虫模块之HTML下载模块的主要内容,如果未能解决你的问题,请参考以下文章

python-爬虫之requests模块介绍(登陆github)

Python爬虫之爬取煎蛋网妹子图

Python爬虫之BeautifulSoup模块

爬虫学习 04.Python网络爬虫之requests模块

python爬虫模块之HTML解析模块

04,Python网络爬虫之requests模块