# 导包 from urllib import request # 导入urllib.error包中 HTTPError,URLError 模块 异常捕获 from urllib.error import HTTPError,URLError #1. 传入url #2. user_agent #3. headers #4. 定义Request #5. urlopen #6. 返回byte数组 def urlrequests(url,headers=None): # 如果headers不存在则使用自定义好的headers if headers == None: headers = { 'User-Agent': ' Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } html_bytes=b''#倒成二进制bytes格式 try: req=request.Request(url,headers=headers) response=request.urlopen(req)#第二个参数设置为timeout 如果请求超时会报出except URLError错误 html_bytes=response.read() except HTTPError as a: print(a) except URLError as e: print(e) except Exception as s: print(s) return html_bytes if __name__ == '__main__': html_bytes=urlrequests('http://www.xicidaili.com')#写入想要爬取的网站地址 print(html_bytes.decode('utf-8'))