[AppleScript] 纯文本查看 复制代码
import re
import requests
from fontTools.ttLib import TTFont
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"
}
#下载字体二进制文件—>微笑面对生活—^^—
font=requests.get("https://www.xxsy.net/Content/css/xxsyfont/yahei/font.ttf",headers=headers)
with open("font.ttf",mode="wb")as f:
    f.write(font.content)
#转换字体文件为我们能看得懂的文件—>微笑面对生活—^^—
fo = TTFont("font.ttf")
fo.saveXML('font.xml')
#获取字体的映射关系—>微笑面对生活—^^—
font_map = fo['cmap'].getBestCmap()
#替换字典
zd = {'uniE800':'的',
      'uniE801':'一',
      'uniE802':'是',
      'uniE803':'了',
      'uniE804': '我',
      'uniE805': '不',
      'uniE806': '人',
      'uniE807': '在',
      'uniE808': '他',
      'uniE809': '有',
      'uniE80A': '这',
      'uniE80B': '个',
      'uniE80C': '上',
      'uniE80D': '们',
      'uniE80E': '来',
      'uniE80F': '到',
      'uniE810': '时',
      'uniE811': '大',
      'uniE812': '地',
      'uniE813': '为',
      'uniE814': '子',
      'uniE815': '中',
      'uniE816': '你',
      'uniE817': '说',
      'uniE818': '生',
      'uniE819': '国',
      'uniE81A': '年',
      'uniE81B': '着',
      'uniE81C': '就',
      'uniE81D': '那',
      'uniE81E': '和',
      'uniE81F': '要',
      'uniE820': '她',
      'uniE821': '出',
      'uniE822': '也',
      'uniE823': '得',
      'uniE824': '里',
      'uniE825': '后',
      'uniE826': '自',
      'uniE827': '以',
      'uniE828': '会',
      'uniE829': '家',
      'uniE82A': '可',
      'uniE82B': '下',
      'uniE82C': '而',
      'uniE82D': '过',
      'uniE82E': '天',
      'uniE82F': '去',
      'uniE830': '能',
      'uniE831': '对',
      'uniE832': '小',
      'uniE833': '多',
      'uniE834': '然',
      'uniE835': '于',
      'uniE836': '心',
      'uniE837': '学',
      'uniE838': '么',
      'uniE839': '之',
      'uniE83A': '都',
      'uniE83B': '好',
      'uniE83C': '看',
      'uniE83D': '起',
      'uniE83E': '发',
      'uniE83F': '当',
      'uniE840': '没',
      'uniE841': '成',
      'uniE842': '只',
      'uniE843': '如',
      'uniE844': '事',
      'uniE845': '把',
      'uniE846': '还',
      'uniE847': '用',
      'uniE848': '第',
      'uniE849': '样',
      'uniE84A': '道',
      'uniE84B': '想',
      'uniE84C': '作',
      'uniE84D': '种',
      'uniE84E': '开',
      'uniE84F': '美',
      'uniE850': '总',
      'uniE851': '从',
      'uniE852': '无',
      'uniE853': '情',
      'uniE854': '已',
      'uniE855': '面',
      'uniE856': '最',
      'uniE857': '女',
      'uniE858': '但',
      'uniE859': '现',
      'uniE85A': '前',
      'uniE85B': '些',
      'uniE85C': '所',
      'uniE85D': '同',
      'uniE85E': '日',
      'uniE85F': '手',
      'uniE860': '又',
      'uniE861': '行',
      'uniE862': '意',
      'uniE863': '动'
      }
# 获取网页源码—>微笑面对生活—^^—
html = requests.get("https://www.xxsy.net/chapter/3660424.html")
html1 = html.text
# 将网页上的&#x替换成uni,目的是为了后面更好替换字体—>微笑面对生活—^^—
html1 = html1.replace('&#x','uni')
# 正则创建—>微笑面对生活—^^—
re1=re.compile('<d>uni(.*?);</d>',re.I|re.S)
re1=re1.findall(html1)
# 将网页上面的&#x后面的字体大写化—>微笑面对生活—^^—
for i in range(0,1000):
      try:
            html1 = html1.replace(re1, re1.upper(), i)
      except:
            break
# 替换网页上的加密字体—>微笑面对生活—^^—
for x,y in font_map.items():
      try:
            thq = '<d>' + fo['cmap'].getBestCmap()[x] + ';</d>'
            thh = zd[y]
            html1=html1.replace(thq,thh,i)
      except:
            break
# 通过正则找到需要爬取的内容(文章标题与文章内容)—>微笑面对生活—^^—
re3=re.compile('<span class="chapter-section" data-index=".*?">(.*?)</span>',re.I|re.S)
re3=re3.findall(html1)
with open(re3[0] + '.txt', mode="w", encoding='utf-8')as f:
      f.writelines(re3)