import urllib.request
import urllib.error
import re,ssl
#异常处理
try:
#针对https ,需要单独处理
#import ssl
#ssl._create_default_https_context = ssl._create_unverified_context
ssl._create_default_https_context = ssl._create_unverified_context
url=”https://xw.qq.com/”
#该部分通过用户代理(User-Agent)来模拟浏览器请求
#headers=(“User-Agent”,” Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Mobile Safari/537.36″)
#opener=urllib.request.build_opener()
#opener.addhesders=[headers]
#date=opener.open(url).read().decode(“utf-8″,”ignore”)
date=urllib.request.urlopen(url).read().decode(“utf-8″,”ignore”)
#正则表达式,提取所需的信息(即新闻链接)
pat=”’,”url”:”(.*?)”,”’
#全局匹配函数,把提取出来的信息放入列表中
thislink=re.compile(pat).findall(date)
#打印该列表,可不要
print(thislink)
for i in range(len(thislink)):
#判断字符串”http”是否在提取出的链接中
if (“http” in thislink[i]):
#通过urlretrieve()直接把链接放入本地
urllib.request.urlretrieve(thislink[i],”D:/write1/date/”+str(i)+”.html”)
else:
#没有”http”时,通过手动添加链接头,此时针对了https
urllib.request.urlretrieve(“https://xw.qq.com”+thislink[i],”D:/write1/date/”+str(i)+”.html”)
#HTTPError有两个属性,异常原因和异常状态码
except urllib.error.HTTPError as e:
#打印异常状态码
if hasattr(e.code):
print(e.code)
#打印异常原因
if hasattr(e.reason):
print(e.reason)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐