python脚本生成崽崽的成语练习word文档

# -*- coding: UTF-8 -*-
from docx import Document
from docx.shared import Pt
import requests
from docx.oxml.ns import qn

document = Document()
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
document.add_heading(u'李航航成语练习', 0)

records = [
    u'春暖花开', u'风和日丽', u'秋高气爽'
]

column_widths = [60,130,20,120,20,90]
row_heights = [18,18,18,18,30,30,30]

def findContent(strCy):
    posTrans = strCy.find(u'【解释】:')
    posFrom = strCy.find(u'【出自】:')
    posExample = strCy.find(u'【示例】:')
    posSyntax = strCy.find(u'【语法】:')
    newStrCy = strCy[posTrans:posSyntax]
    return newStrCy.split('</li><li>')

for i in range(len(records)):
    url = u'https://hanyu.baidu.com/s?wd={}&ptype=zici&tn=sug_click'.format(records[i])
    res = requests.get(url)
    res.encoding = 'utf-8'
    # strCy = res.text.encode('utf-8')
    strCy = res.text
    resultset = findContent(strCy)

    table = document.add_table(rows=7, cols=len(column_widths), style='Light List Accent 5')
    for j in range(len(column_widths)):
        table.columns[j].width = Pt(column_widths[j])
    for k in range(len(row_heights)):
        table.rows[k].height = Pt(row_heights[k])
    table.cell(0,0).text = records[i]
    table.cell(0,1).paragraphs[0].add_run().add_picture("fields.png",width=Pt(120))
    table.cell(0,2).text = u'拼音'
    table.cell(0,3).text = u''
    table.cell(0,4).text = u'用法'
    table.cell(0,5).text = u'\u2610' + u'褒'+ u'\u2610' + u'贬'+ u'\u2610' + u'中性'

    table.cell(1,0).merge(table.cell(1,5)).text = resultset[0]
    table.cell(2,0).merge(table.cell(2,5)).text = resultset[1]
    table.cell(3,0).merge(table.cell(3,5)).text = resultset[2]

    table.cell(4,0).text = u'近义词'
    table.cell(4,1).merge(table.cell(4,5)).text=''

    table.cell(5,0).text = u'反义词'
    table.cell(5,1).merge(table.cell(5,5)).text=''

    table.cell(6,0).text = u'造句'
    table.cell(6,1).merge(table.cell(6,5)).text=''

    document.add_paragraph('')

document.save('cy.docx')

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值