import requests
from lxml import etree
import textwrap
from PIL import Image, ImageDraw, ImageFont
def main():
url="https://www.163.com/dy/media/T1603594732083.html"
rsp=requests.get(url)
html=etree.HTML(rsp.text)
today_url=html.xpath("//h2[@class='media_article_title']/a/@href")[0]
rsp=requests.get(today_url)
html=etree.HTML(rsp.text)
news_list=html.xpath("//div[@class='post_body']/p[2]//text()")
news_list=news_list[1:]
date = news_list[0]
f=open(date + ".txt","w")
for news in news_list:
f.write(news+'\n')
f.close()
news_wrap = []
for line in news_list:
if len(line) < 25:
news_wrap.append(line)
else:
wrap = textwrap.wrap(line, 25)
news_wrap = news_wrap + wrap
IMG_SIZE = (900, len(news_wrap) * 44)
img_1 = Image.new('RGB',IMG_SIZE , (255, 255, 255))
draw = ImageDraw.Draw(img_1)
header_position = (60, 30)
header_font = ImageFont.truetype('simkai.ttf', 55)
draw.multiline_text(header_position, '互联网日报', '#726053', header_font)
current_height = 80
for line in news_wrap:
if line.startswith('2022'):
news_font = ImageFont.truetype('simkai.ttf', 35)
draw.text((60, current_height + 25), line, '#726053', news_font)
current_height += 80
else:
news_font = ImageFont.truetype('simkai.ttf', 30)
draw.text((60, current_height), line, '#726053', news_font)
current_height += 40
img_1.show()
img_1.save(date +'.jpg')
if __name__ == "__main__":
main()