python 正则-爬 古诗文网 推荐栏的内容
#encoding: utf-8 import requests import re def get_page(url,index): headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" } ret = requests.get(url=url, headers=headers) # print(ret.text) t = ret.text titles = re.findall('<div\sclass="cont">.*?<b>(.*?)</b>', t, re.DOTALL) #获取当页的所有标题 dynasties = re.findall('<p\sclass="source">.*?<a.*?>(.*?)</a>', t, re.DOTALL) #获取当页的所有朝代 authors = re.findall('<p\sclass="source">.*?</span>.*?<a.*?>(.*?)</a>', t, re.DOTALL) #获取当页的作者 contsons_tag = re.findall('<div\sclass="contson".*?>(.*?)</div>', t, re.DOTALL) #获取当页诗词的内容 contsons = [] 定义一个列表 报错处理后的诗词内容 poems=[] for contson in contsons_tag: c = re.sub('<.*?>', "", contson) #去掉诗词中的 <br /> 标签 contsons.append(c.strip()) #去掉 换行符号 \n for title,dynastie,author,contson in zip(titles,dynasties,authors,contsons): poem={ #使用一个字典保存一篇诗 "title":title, "dynastie": dynastie, "author": author, "contson": contson }
poems.append(poem) #保存到列表中 for item in poems: #遍历 print(item) print("-"*40) print('*'*60+str(index)) def main(): for i in range(1,16): url = 'http://www.gushiwen.org/default_%s.aspx' %(i) get_page(url,i) if __name__ == '__main__': main()

对别第一页的最后一遍,结果是对的。
浙公网安备 33010602011771号