In [80]:
import re
from bs4 import BeautifulSoup
import urllib.request

def fetch(url):
    return urllib.request.urlopen(url).read()

def soup(url):
    return BeautifulSoup(fetch(url), 'html.parser')

def find_text(s, cls, tag='div'):
    """Find text or return None"""
    r = s.find(tag, cls)
    if r:
        return r.text
    else:
        return None

In [19]:
# Fetch main page
ROOT_PAGE = 'http://sou-yun.com/'
MAIN_PAGE = 'http://sou-yun.com/PoemIndex.aspx'
main_soup = BeautifulSoup(fetch(MAIN_PAGE), 'html.parser')

In [51]:
# Find all dynasties
dynasties = main_soup.find_all('a', 'list')

dynasties


Out[51]:
[<a class="list" href="PoemIndex.aspx?dynasty=XianQin">先秦</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Sui">隋</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Yuan">元</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Qin">秦</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Tang">唐</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Ming">明</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Han">汉</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Song">宋</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Qing">清</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=WeiJin">魏晋</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Liao">辽</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Jindai">近现代</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=NanBei">南北朝</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Jin">金</a>,
 <a class="list" href="PoemIndex.aspx?dynasty=Dangdai">当代</a>]

In [20]:
dynasty_name_urls = []
for a in dynasties:
    url = ROOT_PAGE + a.get('href')
    name = a.text
    dynasty_name_urls.append((name, url))
    
dynasty_name_urls


Out[20]:
[('先秦', 'http://sou-yun.com/PoemIndex.aspx?dynasty=XianQin'),
 ('隋', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Sui'),
 ('元', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Yuan'),
 ('秦', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Qin'),
 ('唐', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Tang'),
 ('明', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Ming'),
 ('汉', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Han'),
 ('宋', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Song'),
 ('清', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Qing'),
 ('魏晋', 'http://sou-yun.com/PoemIndex.aspx?dynasty=WeiJin'),
 ('辽', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Liao'),
 ('近现代', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Jindai'),
 ('南北朝', 'http://sou-yun.com/PoemIndex.aspx?dynasty=NanBei'),
 ('金', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Jin'),
 ('当代', 'http://sou-yun.com/PoemIndex.aspx?dynasty=Dangdai')]

In [24]:
p1 = soup(dynasty_name_urls[0][1])
p1


Out[24]:
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
	诗词索引  先秦 
</title><link href="pa10.css" rel="stylesheet" type="text/css"/>
<style>
        .picComment { display: block; margin: 2px; }
    </style>
<script src="js/tabpane.js" type="text/javascript"></script>
<script src="js/slide.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function MyInit() {
var items = document.getElementsByTagName("div");
for (var i = 0; i < items.length; i++) {
    if (items[i].id.indexOf("comment_") == 0) {
        DisplayComment(items[i].id.substr(8));
    }
}
HideWord();
InitPics();
}

function HideWord()
{
    var items = document.getElementsByTagName("div");
    for (var i = 0; i < items.length; i++) {
        if (items[i].id.indexOf("word_") == 0) {
            items[i].style.display = "none";
        }
    }
    document.getElementById("close").style.display = "none";
}

function DisplayWord(index) {
    DisplayIt("word_", index);
}

function DisplayIt(prefix, index) {
var items = document.getElementsByTagName("div");
for (var i = 0; i < items.length; i++) {
    if (items[i].id.indexOf(prefix) == 0) {
        if (index == items[i].id.substr(prefix.length)) {
            items[i].style.display = "";
            var top = GetWordTop();
            items[i].style.top = top + "px";
            var closer = document.getElementById("close");
            closer.style.display = "";
            closer.style.top = (top + 2) + "px";
        }
        else {
            items[i].style.display = "none";
        }
    }
}
}

function GetWordTop() {
var top = $(document).scrollTop() + 20;
if (top < content.offsetTop) {
    top = content.offsetTop;
}
return top;
}

function DisplayComment(index) {
var item = document.getElementById("comment_" + index);
var image = document.getElementById("comment_icon_" + index);
if (item.style.display == "none") {
    item.style.display = "";
    image.src = "images/opened.png";
}
else {
    item.style.display = "none";
    image.src = "images/closed.png";
}
}

function InitPics() {
    var oPicSS = $("div.picSlideShow");
    for (var j = 0; j < oPicSS.length; j++) {
        var images = $(oPicSS[j]).find(".picSSImg");
        var oMove = $(oPicSS[j]).find(".picSSMove")[0];
        var oClick = $(oPicSS[j]).find(".picSSLeft").find("img");

        for (var i = 0; i < oClick.length; i++) {
            oClick[i].onmouseover = function (i, ocs, om, ims) {
                return function (e) {
                    for (var k = 0; k < ocs.length; k++)
                        ocs[k].className = "picSSIcon";

                    this.className = "picSSIcon picSSOn";
                    om.style.top = -ims[i].offsetTop + "px";
                }
            }(i, oClick, oMove, images);
        }
    }
};
</script>
</head>
<body>
<div class="bar">
<div class="wrapper" id="Menu1_Bar">
<a href="/index.aspx"><img class="sLogoImg" src="/images/publish.png" style="border: 0px; float: left; padding: 2px 0.5em 0 0;"/></a>
<span class="mLabel navLink">阅读</span>
<a class="curNavLink navLink" href="PoemIndex.aspx" id="Menu1_HyperLink3">综合</a>
<a class="navLink" href="ShiHua.aspx" id="Menu1_ShiHua">诗话</a>
<a class="navLink" href="CiHua.aspx" id="Menu1_CiHua">词话</a>
<a class="navLink" href="eBookIndex.aspx" id="Menu1_eBookLink">影印古籍</a>
<span class="mLabel navLink">查询</span>
<a class="navLink" href="QueryPoem.aspx" id="Menu1_PoemLink">诗词</a>
<a class="navLink" href="AllusionsIndex.aspx?sort=People" id="Menu1_AllusionLink">典故、词汇</a>
<a class="navLink" href="QueryCiTune.aspx" id="Menu1_CiTuneLink">词谱</a>
<a class="navLink" href="Yjlh.aspx" id="Menu1_YjlhLink">类书集成</a>
<a class="navLink" href="PoemGeo.aspx" id="Menu1_PoemGeoLink">诗词地图</a>
<span class="mLabel navLink">活动</span>
<a class="navLink" href="haiyuebei.aspx" id="Menu1_HyperLink4">海岳杯</a>
<a class="navLink" href="bqj.aspx" id="Menu1_HyperLink1">白雀奖</a>
<br/>
<span class="mLabel navLink">韵典</span>
<a class="navLink" href="QR.aspx" id="Menu1_RhymeDictLink">平水韵</a>
<a class="navLink" href="QR.aspx?ci=*" id="Menu1_CiRhymeLink">词林正韵</a>
<a class="navLink" href="zyqr.aspx" id="Menu1_HyperLink2">中原音韵</a>
<span class="mLabel navLink">校注</span>
<a class="navLink" href="AnalyzePoem.aspx" id="Menu1_PoemValidationLink">律诗校验</a>
<a class="navLink" href="AnalyzeCi.aspx" id="Menu1_CiValidationLink">词格校验</a>
<a class="navLink" href="AnalyzeCouplet.aspx" id="Menu1_CoupletValidationLink">对联查验</a>
<a class="navLink" href="AllusionInfer.aspx" id="Menu1_AllusionAnalyzerLink">自动笺注</a>
<a class="navLink" href="STConvert.aspx" id="Menu1_STConvertLink">简繁转换</a>
<span class="mLabel navLink">选项</span>
<a class="navLink" href="index.aspx" id="Menu1_IndexLink">首页</a>
<a class="navLink" href="/PoemIndex.aspx?dynasty=XianQin&amp;lang=t" id="Menu1_LangLink" title="部分資料因缺乏繁體版本將仍用簡體顯示">繁體</a>
</div>
</div>
<script>  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');  ga('create', 'UA-19814235-1', 'auto');  ga('send', 'pageview'); </script>
<div class="wrapper">
<form action="QueryPoem.aspx" id="QueryForm" method="post">
<input name="Command" type="hidden" value="Query"/>
<div style="padding: 1em 0px 0.4em 0px; line-height: 2em;">
<span class="inlineComment1">词、句或作者:</span><input id="KeywordTextBox" maxlength="40" name="KeywordTextBox" size="27" style="width: 254px; margin-right: 1em;" type="text"/><input id="QueryButton" name="QueryButton" style="width: 100px;" type="submit" value="检索"/><span class="charType">(已收录诗词 747521 首)</span><br/>
<span class="inlineComment1" style="padding-left: 2em;">筛选条件:</span><span class="label normal">范围 </span><input checked="checked" id="FullScope" name="Scope" type="radio" value="FullScope"/><label for="FullScope">全诗</label>
<input id="TitleScope" name="Scope" type="radio" value="TitleScope"/><label for="TitleScope">诗题</label>
<input id="SentenceScope" name="Scope" type="radio" value="SentenceScope"/><label for="SentenceScope">诗句</label>
<input id="AuthorScope" name="Scope" type="radio" value="AuthorScope"/><label for="AuthorScope">作者</label><span class="label normal" style="margin-left: 1em;">朝代 </span>
<select id="DynastyOption" name="DynastyOption" style="width: 91px; margin-right: 1em;">
<option value="0">任何朝代</option>
<option value="6">先唐</option>
<option value="7">唐</option>
<option value="8">宋</option>
<option value="11">辽、金、元</option>
<option value="12">明</option>
<option value="13">清</option>
<option value="14">近现代</option>
<option value="15">当代</option>
</select>
<span class="label normal">体裁 </span><select class="normal" id="Select2" name="PTypeOption" size="1" style="margin-right: 1em;">
<option value="All">所有</option>
<option value="Jue">绝句</option>
<option value="Lv">律诗</option>
<option value="Pai">排律</option>
<option value="WuJue">五绝</option>
<option value="QiJue">七绝</option>
<option value="WuLv">五律</option>
<option value="QiLv">七律</option>
<option value="WuPai">五排</option>
<option value="QiPai">七排</option>
<option value="WuYanLvJie">五言律绝</option>
<option value="QiYanLvJie">七言律绝</option>
<option value="Ci">词</option>
<option value="Qu">元曲、散曲</option>
<option value="GuFeng">古风</option>
<option value="YueFu">乐府</option>
<option value="GuYue">古风、乐府</option>
<option value="Sao">骚</option>
<option value="SiYan">四言</option>
<option value="LiuYan">六言</option>
<option value="Jie">偈、颂</option>
<option value="Others">其他</option>
</select><span class="label normal">韵部 </span><select class="normal" id="RhymeCategory" name="RhymeCategory" style="width: 82px;"><option value="">所有</option> <option value="东">一东</option> <option value="冬">二冬</option> <option value="江">三江</option> <option value="支">四支</option> <option value="微">五微</option> <option value="鱼">六鱼</option> <option value="虞">七虞</option> <option value="齐">八齐</option> <option value="佳">九佳</option> <option value="灰">十灰</option> <option value="真">十一真</option> <option value="文">十二文</option> <option value="元">十三元</option> <option value="寒">十四寒</option> <option value="删">十五删</option> <option value="先">一先</option> <option value="萧">二萧</option> <option value="肴">三肴</option> <option value="豪">四豪</option> <option value="歌">五歌</option> <option value="麻">六麻</option> <option value="阳">七阳</option> <option value="庚">八庚</option> <option value="青">九青</option> <option value="蒸">十蒸</option> <option value="尤">十一尤</option> <option value="侵">十二侵</option> <option value="覃">十三覃</option> <option value="盐">十四盐</option> <option value="咸">十五咸</option> <option value="董">一董</option> <option value="肿">二肿</option> <option value="讲">三讲</option> <option value="纸">四纸</option> <option value="尾">五尾</option> <option value="语">六语</option> <option value="麌">七麌</option> <option value="荠">八荠</option> <option value="蟹">九蟹</option> <option value="贿">十贿</option> <option value="轸">十一轸</option> <option value="吻">十二吻</option> <option value="阮">十三阮</option> <option value="旱">十四旱</option> <option value="潸">十五潸</option> <option value="铣">十六铣</option> <option value="筱">十七筱</option> <option value="巧">十八巧</option> <option value="皓">十九皓</option> <option value="哿">二十哿</option> <option value="马">二十一马</option> <option value="养">二十二养</option> <option value="梗">二十三梗</option> <option value="迥">二十四迥</option> <option value="有">二十五有</option> <option value="寝">二十六寝</option> <option value="感">二十七感</option> <option value="俭">二十八俭</option> <option value="豏">二十九豏</option> <option value="送">一送</option> <option value="宋">二宋</option> <option value="绛">三绛</option> <option value="寘">四寘</option> <option value="未">五未</option> <option value="御">六御</option> <option value="遇">七遇</option> <option value="霁">八霁</option> <option value="泰">九泰</option> <option value="卦">十卦</option> <option value="队">十一队</option> <option value="震">十二震</option> <option value="问">十三问</option> <option value="愿">十四愿</option> <option value="翰">十五翰</option> <option value="谏">十六谏</option> <option value="霰">十七霰</option> <option value="啸">十八啸</option> <option value="效">十九效</option> <option value="号">二十号</option> <option value="个">二十一个</option> <option value="祃">二十二祃</option> <option value="漾">二十三漾</option> <option value="敬">二十四敬</option> <option value="径">二十五径</option> <option value="宥">二十六宥</option> <option value="沁">二十七沁</option> <option value="勘">二十八勘</option> <option value="艳">二十九艳</option> <option value="陷">三十陷</option> <option value="屋">一屋</option> <option value="沃">二沃</option> <option value="觉">三觉</option> <option value="质">四质</option> <option value="物">五物</option> <option value="月">六月</option> <option value="曷">七曷</option> <option value="黠">八黠</option> <option value="屑">九屑</option> <option value="药">十药</option> <option value="陌">十一陌</option> <option value="锡">十二锡</option> <option value="职">十三职</option> <option value="缉">十四缉</option> <option value="合">十五合</option> <option value="叶">十六叶</option> <option value="洽">十七洽</option></select><br/>
<span class="inlineComment1" style="padding-left: 2em;">你还可以:</span><a href="CharInClause.aspx">按字出现在句子中的位置检索诗词</a><a href="IndexByMap.aspx" style="margin-left: 1em;">按地理查询诗人诗集</a><span class="inlineComment1" style="margin-left: 1em;">切换诗词显示方式:</span><a href="/PoemIndex.aspx?dynasty=XianQin&amp;dm=s" id="DisplayModeLink">一韵一行方式</a>
</div>
</form>
</div>
<div class="grey" style="border-top: 1px solid #eee;">
<div class="wrapper grey" style="padding-top: 0.8em;">
<div class="title lightBottomLine"><img src="/images/ico.gif" style="padding-right: 0.5em;"/><a class="expand" href="/PoemIndex.aspx?">诗词库</a><a class="expand" href="/PoemIndex.aspx?dynasty=XianQin">先秦</a>
</div>
<div class="full">
<br/>
<div id="content">
<div>
<div class="list1"><div class="label1">姓氏:伯、宋、屈、南、荆、阙</div><table border="0" cellpadding="1px" cellspacing="0" style="width: 100%;"><tr><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e4%bc%af%e5%a4%b7">伯夷</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e5%ae%8b%e7%8e%89">宋玉</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e5%b1%88%e5%8e%9f">屈原</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e5%8d%97%e6%b5%b7%e4%ba%94%e4%bb%99%e4%ba%ba">南海五仙人</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e8%8d%86%e8%bd%b2">荆轲</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e9%98%99%e5%90%8d">阙名</a></td><td> </td><td> </td><td> </td><td> </td></tr></table><div class="label1">其它</div><table border="0" cellpadding="1px" cellspacing="0" style="width: 100%;"><tr><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e6%97%a0%e5%90%8d%e6%b0%8f">无名氏</a></td><td width="10%"><a href="/PoemIndex.aspx?dynasty=XianQin&amp;author=%e8%af%97%e7%bb%8f">诗经</a></td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr></table></div>
<br/>
</div>
</div>
</div>
<br/>
</div>
</div>
<div class="commentCloser" id="close">
<a href="javascript: HideWord();"><img src="/images/close.jpg" style="border: 1px solid grey;"/></a>
</div>
<script type="text/javascript">
MyInit();
</script>
<div class="pageFooter">
<p><a href="about.aspx">关于本站</a>  <a href="mailto:cozychen@hotmail.com">联系我们</a>  <a href="/Private.aspx">隐私权政策</a></p>
<p><span class="inlineComment1">客服电话:+86 136 0901 3320</span></p>
</div>
</body>
</html>

In [50]:
d = p1.find('div', 'list1')
authors = d.find_all('a')
author_name_urls = []
for a in authors:
    author_name_urls.append((a.text, ROOT_PAGE + a.get('href')))
    
author_name_urls


Out[50]:
[('伯夷',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e4%bc%af%e5%a4%b7'),
 ('宋玉',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e5%ae%8b%e7%8e%89'),
 ('屈原',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e5%b1%88%e5%8e%9f'),
 ('南海五仙人',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e5%8d%97%e6%b5%b7%e4%ba%94%e4%bb%99%e4%ba%ba'),
 ('荆轲',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e8%8d%86%e8%bd%b2'),
 ('阙名',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e9%98%99%e5%90%8d'),
 ('无名氏',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e6%97%a0%e5%90%8d%e6%b0%8f'),
 ('诗经',
  'http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e8%af%97%e7%bb%8f')]

In [92]:
test_author_name, url = author_name_urls[1]
print(test_author_name, url)
test_author_soup = soup(url)


宋玉 http://sou-yun.com//PoemIndex.aspx?dynasty=XianQin&author=%e5%ae%8b%e7%8e%89

In [99]:
def get_all_poems_for_author(author_soup):
    poem_soup = author_soup.find('div', 'poem')
    divs = poem_soup.find_all('div')
    for d in divs:
        if d.get('id', '').startswith('item_'):  # is a poem
            p_title = find_text(d, 'title')
            p_title = re.sub('显示自动注释', '', p_title).strip()
#             print('POEM TITLE:', p_title)
            p_content = find_text(d, 'content')
#             print('CONTENT:', p_content)
            yield p_title, p_content

In [97]:
print(test_author_name)
for t, c in get_all_poems_for_author(test_author_soup):
    pass


宋玉
POEM TITLE: 九辩(先秦·宋玉)
CONTENT: 悲哉秋之为气也,萧瑟兮草木摇落而变衰。憭慄兮若在远行,登山临水兮送将归。泬寥兮天高而气清,𡧯𡽐兮收潦而水清。憯悽增欷兮薄寒之中人,怆恍懭悢兮去故而就新。坎廪兮贫士失职而志不平,廓落兮羁旅而无友生。惆怅兮而私自怜。燕翩翩其辞归兮,蝉𡧯漠而无声。雁廱廱而南游兮,鹍鸡啁哳而悲鸣。独申旦而不寐兮,哀蟋蟀之宵征。时亹亹而过中兮,蹇淹留而无成(一章)。悲忧穷戚兮独处廓,有美一人兮心不绎。去乡离家兮徕远客,超逍遥兮今焉薄?专思君兮不可化,君不知兮可柰何!蓄怨兮积思,心烦憺兮忘食事。愿一见兮道余意,君之心兮与余异。车既驾兮朅而归,不得见兮心伤悲。倚结軨兮长太息,涕潺湲兮下沾轼。忼慨绝兮不得,中瞀乱兮迷惑。私自怜兮何极?心怦怦兮谅直(二章)。皇天平分四时兮,窃独悲此廪秋。白露既下百草兮,奄离披此梧楸。去白日之昭昭兮,袭长夜之悠悠。离芳蔼之方壮兮,余萎约而悲愁。秋既先戒以白露兮,冬又申之以严霜。收恢台之孟夏兮,然欿傺而沉藏。叶烟邑而无色兮,枝烦挐而交横;颜淫溢而将罢兮,柯彷佛而萎黄;梢櫹椮之可哀兮,形销铄而瘀伤。惟其纷糅而将落兮,恨其失时而无当。揽騑辔而下节兮,聊逍遥以相佯。岁忽忽而遒尽兮,恐余寿之弗将。悼余生之不时兮,逢此世之俇攘。澹容与而独倚兮,蟋蟀鸣此西堂。心怵惕而震荡兮,何所忧之多方!卬明月而太息兮,步列星而极明(三章)。窃悲夫蕙华之曾敷兮,纷旖旎乎都房。何曾华之无实兮,从风雨而飞飏。以为君独服此蕙兮,羌无以异于众芳。闵奇思之不通兮,将去君而高翔。心闵怜之惨悽兮,愿一见而有明。重无怨而生离兮,中结轸而增伤。岂不郁陶而思君兮?君之门以九重。猛犬狺狺而迎吠兮,关梁闭而不通。皇天淫溢而秋霖兮,后土何时而得干!块独守此无泽兮,仰浮云而永叹(四章)。何时俗之工巧兮,背绳墨而改错!却骐骥而不乘兮,策驽骀而取路。当世岂无骐骥兮,诚莫之能善御。见执辔者非其人兮,故駶跳而远去。凫雁皆唼夫粱藻兮,凤愈飘翔而高举。圜凿而方枘兮,吾固知其锄铻而难入。众鸟皆有所登栖兮,凤独遑遑而无所集。愿衔枚而无言兮,尝被君之渥洽。太公九十乃显荣兮,诚未遇其匹合。谓骐骥兮安归?谓凤皇兮安栖?变古易俗兮世衰,今之相者兮举肥。骐骥伏匿而不见兮,凤皇高飞而不下。鸟兽犹知怀德兮,何云贤士之不处?骥不骤进而求服兮,凤亦不贪喂而妄食。君弃远而不察兮,虽愿忠其焉得?欲寂漠而绝端兮,窃不敢忘初之厚德。独悲愁其伤人兮,冯郁郁其何极(五章)?霜露惨悽而交下兮,心尚幸其弗济。霰雪雰糅其增加兮,乃知遭命之将至。愿徼幸而有待兮,泊莽莽与壄草同死。愿自往而径游兮,路壅绝而不通。欲循道而平驱兮,又未知其所从。然中路而迷惑兮,自压桉而学诵。性愚陋以褊浅兮,信未达乎从容。窃美申包胥之气盛兮,恐时世之不固。何时俗之工巧兮?灭规矩而改凿。独耿介而不随兮,愿慕先圣之遗教。处浊世而显荣兮,非余心之所乐。与其无义而有名兮,宁穷处而守高。食不媮而为饱兮,衣不苟而为温。窃慕诗人之遗风兮,愿托志乎素餐。蹇充倔而无端兮,泊莽莽而无垠。无衣裘以御冬兮,恐溘死不得见乎阳春(六章)。靓杪秋之遥夜兮,心缭悷而有哀。春秋逴逴而日高兮,然惆怅而自悲。四时递来而卒岁兮,阴阳不可与俪偕。白日晼晚其将入兮,明月销铄而减毁。岁忽忽而遒尽兮,老冉冉而愈㢮。心摇悦而日𡴘兮,然怊怅而无冀。中憯恻之悽怆兮,长太息而增欷。年洋洋以日往兮,老嵺廓而无处。事亹亹而觊进兮,蹇淹留而踌躇(七章)。何泛滥之浮云兮,猋壅蔽此明月!忠昭昭而愿见兮,然阴曀而莫达。愿皓日之显行兮,云蒙蒙而蔽之。窃不自聊而愿忠兮,或黕点而污之。尧舜之抗行兮,瞭冥冥而薄天。何险巇之嫉妒兮,被以不慈之伪名?彼日月之照明兮,尚黯黮而有瑕。何况一国之事兮,亦多端而胶加。被荷裯之晏晏兮,然潢洋而不可带。既骄美而伐武兮,负左右之耿介。憎愠惀之脩美兮,好夫人之慷慨。众踥蹀而日进兮,美超远而逾迈。农夫辍耕而容与兮,恐田野之芜秽。事绵绵而多私兮,窃悼后之危败。世雷同而炫曜兮,何毁誉之昧昧!今脩饰而窥镜兮,后尚可以窜藏。愿寄言夫流星兮,羌倏忽而难当。卒壅蔽此浮云兮,下暗漠而无光(八章)。尧舜皆有所举任兮,故高枕而自适。谅无怨于天下兮,心焉取此怵惕?乘骐骥之浏浏兮,驭安用夫强策?谅城郭之不足恃兮,虽重介之何益?邅翼翼而无终兮,忳惛惛而愁约。生天地之若过兮,功不成而无效。愿沈滞而不见兮,尚欲布名乎天下。然潢洋而不遇兮,直怐愗而自苦。莽洋洋而无极兮,忽翱翔之焉薄?国有骥而不知乘兮,焉皇皇而更索?宁戚讴于车下兮,桓公闻而知之。无伯乐之善相兮,今谁使乎誉之。罔流涕以聊虑兮,惟著意而得之。纷纯纯之愿忠兮,妒被离而鄣之。乱曰:愿赐不肖之躯而别离兮,放游志乎云中。乘精气之抟抟兮,骛诸神之湛湛。骖白霓之习习兮,历群灵之丰丰。左朱雀之茇茇兮,右苍龙之躣躣。属雷师之阗阗兮,通飞廉之衙衙。前轾辌之锵锵兮,后辎乘之从从。载云旗之委蛇兮,扈屯骑之容容。计专专之不可化兮,愿遂推而为臧。赖皇天之厚德兮,还及君之无恙(九章)。
POEM TITLE: 招魂(先秦·宋玉)
CONTENT: 朕幼清以廉洁兮,身服义而未沬。主此盛德兮,牵于俗而芜秽。上无所考此盛德兮,长离殃而愁苦。帝告巫阳曰:「有人在下,我欲辅之。魂魄离散,汝筮予之!”」巫阳对曰:「掌㝱。上帝其命难从。若必筮予之,恐后之谢,不能复用。」巫阳焉乃下招曰:魂兮归来!去君之恒干,何为四方些?舍君之乐处,而离彼不祥些!魂兮归来!东方不可以托些。长人千仞,惟魂是索些。十日代出,流金铄石些。彼皆习之,魂往必释些。归来兮!不可以托些。魂兮归来!南方不可以止些。雕题黑齿,得人肉以祀,以其骨为醢些。蝮蛇蓁蓁,封狐千里些。雄虺九首,往来鯈忽,吞人以益其心些。归来兮!不可以久淫些。魂兮归来!西方之害,流沙千里些。旋入雷渊,爢散而不可止些。𡴘而得脱,其外旷宇些。赤蚁若象,玄蜂若壶些。五谷不生,丛菅是食些。其土烂人,求水无所得些。彷徉无所倚,广大无所极些。归来兮!恐自遗贼些。魂兮归来!北方不以止些。增冰峨峨,飞雪千里些。归来兮!不可以久些。魂兮归来!君无上天些。虎豹九关,啄害下人些。一夫九首,拔木九千些。豺狼从目,往来侁侁些;悬人以娭,投之深渊些。致命于帝,然后得瞑些。归来!往恐危身些。魂兮归来!君无下此幽都些。土伯九约,其角觺觺些。敦脢血拇,逐人駓駓些。参目虎首,其身若牛些。此皆甘人,归来!恐自遗灾些。魂兮归来!入修门些。工祝招君,背行先些。秦篝齐缕,郑绵络些。招具该备,永啸呼些。魂兮归来!反故居些。天地四方,多贼奸些。像设君室,静閒安些。高堂邃宇,槛层轩些。层台累榭,临高山些。网户朱缀,刻方连些。冬有穾厦,夏室寒些。川谷径复,流潺湲些。光风转蕙,泛崇兰些。经堂入奥,朱尘筵些。砥室翠翘,挂曲琼些。翡翠珠被,烂齐光些。蒻阿拂壁,罗帱张些。纂组绮缟,结琦璜些。室中之观,多珍怪些。兰膏明烛,华容备些。二八侍宿,射递代些。九侯淑女,多迅众些。盛鬋不同制,实满宫些。容态好比,顺弥代些。弱颜固植,謇其有意些。姱容修态,絙洞房些。蛾眉曼睩,目腾光些。靡颜腻理,遗视矊些。离榭修幕,侍君之閒些。翡帷翠帐,饰高堂些。红壁沙版,玄玉梁些。仰观刻桷,画龙蛇些。坐堂伏槛,临曲池些。芙蓉始发,杂芰荷些。紫茎屏风,文缘波些。文异豹饰,侍陂陁些。轩辌既低,步骑罗些。兰薄户树,琼木篱些。魂兮归来!何远为些?室家遂宗,食多方些。稻粢穱麦,挐黄粱些。大苦咸酸,辛甘行些。肥牛之腱,臑若芳些。和酸若苦,陈吴羹些。胹鳖炮羔,有柘浆些。鹄酸臇凫,煎鸿鸧些。露鸡臛蠵,厉而不爽些。粔籹蜜饵,有饧餭些。瑶浆蜜勺,实羽觞些。挫糟冻饮,酎清凉些。华酌既陈,有琼浆些。归来反故室,敬而无妨些。肴羞未通,女乐罗些。陈钟按鼓,造新歌些。《涉江》《采菱》,发《扬荷》些。美人既醉,朱颜酡些。娭光眇视,目曾波些。被文服纤,丽而不奇些。长发曼鬋,艳陆离些。二八齐容,起郑舞些。衽若交竿,抚案下些。竽瑟狂会,搷鸣鼓些。宫庭震惊,发激楚些。吴歈蔡讴,奏大吕些。士女杂坐,乱而不分些。放陈组缨,班其相纷些。郑卫妖玩,来杂陈些。激楚之结,独秀先些。菎蔽象棋,有六簙些。分曹并进,遒相迫些。成枭而牟,呼五白些。晋制犀比,费白日些。铿钟摇簴,揳梓瑟些。娱酒不废,沉日夜些。兰膏明烛,华镫错些。结撰至思,兰芳假些。人有所极,同心赋些。酎饮尽欢,乐先故些。魂兮归来!反故居些。乱曰:献岁发春兮,汨吾南征,菉蘋齐叶兮,白芷生。路贯庐江兮,左长薄,倚沼畦瀛兮,遥望博。青骊结驷兮,齐千乘,悬火延起兮,玄颜烝。步及骤处兮,诱骋先,抑骛若通兮,引车右还。与王趋梦兮,课后先。君王亲发兮,惮青兕,朱明承夜兮,时不可以淹。皋兰被径兮,斯路渐。湛湛江水兮,上有枫,目极千里兮,伤春心。魂兮归来哀江南!

In [100]:
for name, url in author_name_urls:
    s = soup(url)
    for t, c in get_all_poems_for_author(s):
        print((name, t))


('伯夷', '采薇歌(先秦·伯夷)')
('宋玉', '九辩(先秦·宋玉)')
('宋玉', '招魂(先秦·宋玉)')
('屈原', '离骚(先秦·屈原)')
('屈原', '国殇(先秦·屈原)')
('屈原', '礼魂(先秦·屈原)')
('屈原', '卜居(先秦·屈原)')
('屈原', '渔父(先秦·屈原)')
('屈原', '九歌 东皇太一(先秦·屈原)\u3000\u3000押阳韵')
('屈原', '天问(先秦·屈原)')
('屈原', '远游(先秦·屈原)')
('屈原', '九章 惜诵(先秦·屈原)')
('南海五仙人', '南海仙人祝辞(先秦·南海五仙人)')
('荆轲', '荆轲歌(先秦·荆轲)')
('阙名', '嘉量铭(先秦·阙名)\u3000\u3000押职韵')
('无名氏', '禹玉牒辞(先秦·无名氏)\u3000\u3000押庚韵')
('无名氏', '衣铭(先秦·无名氏)\u3000\u3000押寒韵')
('无名氏', '书车(先秦·无名氏)\u3000\u3000押遇韵')
('无名氏', '击壤歌(先秦·无名氏)')
('无名氏', '赓歌(先秦·无名氏)')
('无名氏', '南风歌(先秦·无名氏)')
('无名氏', '五子歌(先秦·无名氏)')
('无名氏', '夏人歌(先秦·无名氏)')
('无名氏', '采薇歌(先秦·无名氏)')
('无名氏', '梦歌(先秦·无名氏)')
('无名氏', '去鲁歌(先秦·无名氏)')
('无名氏', '曳杖歌(先秦·无名氏)')
('无名氏', '南蒯歌(先秦·无名氏)')
('无名氏', '成人歌(先秦·无名氏)')
('无名氏', '黄鹄歌(先秦·无名氏)')
('无名氏', '宋城者讴(先秦·无名氏)')
('无名氏', '穗歌(先秦·无名氏)')
('无名氏', '岁莫歌(先秦·无名氏)')
('无名氏', '齐庄公歌(先秦·无名氏)')
('无名氏', '莱人歌(先秦·无名氏)')
('诗经', '国风·周南 关雎(先秦·诗经)')
('诗经', '葛覃(先秦·诗经)')
('诗经', '卷耳(先秦·诗经)')
('诗经', '樛木(先秦·诗经)')