{"id":328,"date":"2008-07-25T21:19:32","date_gmt":"2008-07-25T13:19:32","guid":{"rendered":"http:\/\/www.liangliang.org.cn\/blog\/?p=328"},"modified":"2008-07-25T21:19:32","modified_gmt":"2008-07-25T13:19:32","slug":"%e6%ba%90%e7%a0%81baidu%e4%b8%8b%e8%bd%bd%e5%99%a8%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.liangliang.org.cn\/?p=328","title":{"rendered":"\u6e90\u7801baidu\u4e0b\u8f7d\u5668\u3002"},"content":{"rendered":"<p>#!\/bin\/bash<br \/>\n#Copyright (c) 2006 bones7456 (bones7456@gmail.com)<br \/>\n#License: GPLv2<br \/>\n#\u975e\u5e38\u611f\u8c22ubuntu\u793e\u533a\u548coneleaf\u8001\u5144<br \/>\n#\u5f3a\u70c8\u5efa\u8bae\u5b89\u88c5axel\uff08\u591a\u7ebf\u7a0b\u4e0b\u8f7d\u5de5\u5177\uff09\u548cmid3v2\uff08\u5305\u542b\u5728python-mutagen\u91cc\uff0c\u7528\u4e8e\u4fee\u6539\u6b4c\u66f2\u7684id3\u4fe1\u606f\uff09<\/p>\n<p>#mp3\u7684\u5730\u5740<br \/>\nSOURCE=\"http:\/\/list.mp3.baidu.com\/list\/newhits.html\"<br \/>\n#SOURCE=\"http:\/\/list.mp3.baidu.com\/topso\/mp3topsong.html\" \u6539\u6210\u8fd9\u4e2a\u5730\u5740\u53ef\u4ee5\u4e0b\u8f7d\u6b4c\u66f2top500<\/p>\n<p>#\u4fdd\u5b58mp3\u7684\u76ee\u5f55<br \/>\nSAVE=\"${HOME}\/baidump3\"<\/p>\n<p>#\u4e0b\u8f7d\u91cd\u8bd5\u6b21\u6570<br \/>\nTRYCOUNT=2<\/p>\n<p>#\u7528axel\u4e0b\u8f7d\u65f6\u7684\u7ebf\u7a0b\u6570<br \/>\nAXELNUM=7<\/p>\n<p>#\u4e34\u65f6\u76ee\u5f55<br \/>\nTMP=\"\/tmp\/baidump3-${USER}\"<\/p>\n<p>#\u662f\u5426\u9700\u8981\u6682\u505c<br \/>\nPAUSE=0<\/p>\n<p>if [ x`which axel` = x\"\" ];then<br \/>\nPAUSE=1<br \/>\ncat << EOF\n\u60a8\u7684\u7cfb\u7edf\u4e2d\u6ca1\u6709\u5b89\u88c5axel\u591a\u7ebf\u7a0b\u4e0b\u8f7d\u5de5\u5177\uff0c\u8fd9\u5c06\u5bfc\u81f4\u53ea\u80fd\u4f7f\u7528wget\u8fdb\u884c\u5355\u7ebf\u7a0b\u4e0b\u8f7d\uff0c\u5c06\u4f1a\u5f71\u54cd\u4e0b\u8f7d\u901f\u5ea6\u3002\n\u5982\u679c\u662fubuntu\u7528\u6237\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 sudo apt-get install axel \u8fdb\u884c\u5b89\u88c5\uff0c\u5176\u4ed6\u7cfb\u7edf\u8bf7\u8bbf\u95eeaxel\u4e3b\u9875\uff1ahttp:\/\/wilmer.gaast.net\/main.php\/axel.html \u8fdb\u884c\u4e0b\u8f7d\u3001\u5b89\u88c5\u3002\n\nEOF\nfi\nif [ x`which mid3v2` = x\"\" ];then\nPAUSE=1\ncat << EOF\n\u60a8\u7684\u7cfb\u7edf\u4e2d\u6ca1\u6709\u5b89\u88c5mid3v2\u5de5\u5177\uff0c\u4f7f\u7528\u8be5\u5de5\u5177\u53ef\u4ee5\u4fee\u6539mp3\u6b4c\u66f2\u7684\u6807\u7b7e\u4fe1\u606f(\u5982\u6b4c\u624b\u3001\u6b4c\u540d\u7b49)\uff0c\u5e76\u53bb\u6389\u53ef\u80fd\u5305\u542b\u4e8e\u5176\u4e2d\u7684\u5e7f\u544a\u4fe1\u606f\u3002\n\u5982\u679c\u662fubuntu\u7528\u6237\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 sudo apt-get install python-mutagen \u8fdb\u884c\u5b89\u88c5\uff0c\u5176\u4ed6\u7cfb\u7edf\u8bf7\u8bbf\u95ee\u5176\u4e3b\u9875\uff1ahttp:\/\/www.sacredchao.net\/quodlibet\/wiki\/Development\/Mutagen \u8fdb\u884c\u4e0b\u8f7d\u3001\u5b89\u88c5\u3002\n\nEOF\nfi\nif [ \"$PAUSE\" = 1 ];then\n\techo \"\u662f\u5426\u7ee7\u7eed(y|n)\uff1f\"\n\tread KEYVAR\n\tcase \"$KEYVAR\" in\n\t\"Y\" | \"y\" )\n\techo \u7565\u8fc7\u3002\n\t;;\n\t* )\n\texit 0\n\t;;\n\tesac\nfi\n\n#\u521b\u5efa\u4e0b\u8f7d\u76ee\u5f55\nif [ ! -d \"${SAVE}\" ];then\n    mkdir -p \"${SAVE}\"\nfi\n\n#\u521b\u5efa\u4e34\u65f6\u4e0b\u8f7d\u76ee\u5f55\nif [ -d \"${TMP}\" ];then\n\trm -rf \"${TMP}\"\nfi\n    mkdir -p \"${TMP}\"\n\necho \"\u5f00\u59cb\u4e0b\u8f7d\u767e\u5ea6\u6700\u65b0100\u9996\u6b4c\u66f2\u5217\u8868\"\nwget -O ${TMP}\/mp3.html ${SOURCE}\necho \"\u4e0b\u8f7d\u767e\u5ea6\u6700\u65b0100\u9996\u6b4c\u66f2\u5217\u8868\u5b8c\u6210\u3002\"\n\n#\u8f6c\u6362\u7f51\u9875\u7f16\u7801\niconv -f gbk -t utf8 ${TMP}\/mp3.html |\\\n\ngrep \" href=\\\"http:\/\/mp3.baidu.com\/m\" |\\\n\n#\u5c06mp3list.txt\u6240\u6709\u5f00\u5934\u7684\u7a7a\u683c\u53bb\u6389\nsed -e 's\/ *\/\/' |\\\n\n#\u5c06mp3list.txt\u6240\u6709\u5f00\u5934\u7684tab\u53bb\u6389\nsed -e 's\/\\t*\/\/' |\\\n\n#\u5c06mp3list.txt\u6240\u6709\u5168\u89d2\u7a7a\u683c\u53bb\u6389\nsed -e 's\/\u3000\/\/g' |\\\n\n#\u5c06\u6240\u6709\u7684\u56de\u8f66\u7b26\u53bb\u6389\nsed ':a;N;$!ba;s\/\\n\/,\/g' |\\\n\n#\u5728td>,\u540e\u9762\u52a0\u4e0a\u56de\u8f66\u7b26\uff0c\u4e00\u884c\u8868\u793a\u4e00\u4e2amp3\u6587\u4ef6\u3002<br \/>\nsed -e 's\/,<\/p>\n<td\/\\n\n\n<td\/g' |\\\nsed -e 's\/td>,\/td>\\n\/g' |\\<\/p>\n<p>#\u5220\u9664<\/p>\n<td width=\"30%\">\n<td> <\/td>\n<td...FFFFFF\">\n<p>sed -e 's\/<\/p>\n<td width=\"30%\">\/\/g' |\\<br \/>\nsed -e 's\/<\/p>\n<td>\/\/g' |\\<br \/>\nsed -e 's\/<\\\/td>\/\/g' |\\<br \/>\nsed -e 's\/<\/p>\n<p>\/\/g' |\\<br \/>\nsed -e 's\/<\\\/p>\/\/g' |\\<br \/>\nsed -e 's\/<td.*\"border\">\/\/g' |\\<\/p>\n<p>#\u5220\u9664<\/a>...\"_blank\"><br \/>\nsed -e 's\/<\\\/A>\\\/<A.*_blank>\/\u3001\/g' |\\<br \/>\nsed -e 's\/<\\\/A>\/<\\\/a>\/g' |\\<br \/>\nsed -e 's\/<\\\/a>.*_blank>\/-\/g' |\\<br \/>\n#sed -e 's\/<\\\/a>.*_blank\">\/-\/g' |\\<br \/>\n#\u5220\u9664)<br \/>\nsed -e 's\/<\\\/a>)\/<\\\/a>\/g' |\\<br \/>\n#\u5220\u9664\u6587\u4ef6\u540d\u672b\u5c3e\u7684tab<br \/>\nsed -e 's\/\\t<\\\/a>\/<\\\/a>\/g' |\\<br \/>\n#\u5220\u9664&amp;<br \/>\nsed -e 's\/\\&amp\\;\/\\\/\/g' >${TMP}\/mp3list.txt<\/p>\n<p>#\u5f97\u5230\uff1a<a href=\"http:\/\/mp3.baidu.com\/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8\" target=\"_blank\">Baby ,Baby tell me-\u738b\u5fc3\u51cc<\/a><\/p>\n<p>#\u53d6\u5f97\u884c\u53f7\uff0c\u5faa\u73af<br \/>\nline=$(awk 'END{print NR}' ${TMP}\/mp3list.txt)<br \/>\ni=1;<br \/>\nwhile((i<=line));do\n   downed=0;\n   mpline=`awk 'NR=='\"$i\"'' ${TMP}\/mp3list.txt`\n   url=`echo $mpline | sed -e 's\/<a href=\"\/\/g' | sed 's\/\\ target.*\/\/g' | sed 's\/\"\/\/g' | cat`\n   name=`echo $mpline | sed -e 's\/.*_blank\">\/\/g' | sed -e 's\/.*_blank>\/\/g' | sed -e 's\/<\\\/b>\/\/g' |sed -e 's\/<b>\/\/g' |\\<br \/>\n        sed -e 's\/<\\\/a>\/\/g' | sed -e 's\/\\\/\/-\/g' | sed -e 's\/:\/-\/g'  | sed -e 's\/\"\/'\\''\/g'  | cat`<br \/>\n   title=`echo $name | sed -e 's\/-.*\/\/g'`<\/p>\n<p>   #\u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u4e0b\u8f7d\u8fc7\u8fd9\u9996\u6b4c\uff0c\u5982\u679c\u4e0b\u8f7d\u8fc7\uff0c\u653e\u5f03<br \/>\n   if [ -e \"${SAVE}\/${name}.mp3\" ] || [ -e \"${SAVE}\/${name}.wma\" ]; then<br \/>\n      echo -e \"\\e[1;6m\\e[1;31m\u53d1\u73b0 ${name} \u4e0b\u8f7d\u8fc7\uff0c\u5ffd\u7565\uff0c\u7ee7\u7eed\u4e0b\u4e00\u9996\u3002\\e[1;6m\\e[00m\"<br \/>\n      ((i++))<br \/>\n      continue;<br \/>\n   fi<\/p>\n<p>   echo \"\u5f00\u59cb\u901a\u8fc7 $url \u4e0b\u8f7d $name\";<br \/>\n   wget -O ${TMP}\/down.html $url<br \/>\n   echo \"\u83b7\u53d6 $name \u4e0b\u8f7d\u5217\u8868\u5b8c\u6210\u3002\";<\/p>\n<p>   #down.txt\u4e3a\u6709\u6548\u7684\u4e0b\u8f7d\u5730\u5740<br \/>\n   iconv -f gbk -t utf8 -c ${TMP}\/down.html | grep \"onclick=\\\"return ow(event,this)\\\"\" |\\<br \/>\n   sed -e 's\/.*<a href=\"\/\/g' | sed -e 's\/\" target=\"_blank\".*\/\/g' > ${TMP}\/down.txt<\/p>\n<p>   #size.txt\u4e3a\u6709\u6548\u7684\u4e0b\u8f7d\u6587\u4ef6\u5927\u5c0f<br \/>\n   iconv -f gbk -t utf8 -c ${TMP}\/down.html | grep \"M<\\\/td>\" |\\<br \/>\n   sed -e 's\/<\/p>\n<td>\/\/g' | sed -e 's\/ M<\\\/td>\/\/g' > ${TMP}\/size.txt<\/p>\n<p>   #down.txt\u4e0esize.txt\u5408\u5e76\u800c\u5728\u7684down_size.txt\u6587\u4ef6\u4e2d\u5b57\u6bb5\u4e4b\u95f4\u4ee5\"`\"\u4f5c\u4e3a\u5206\u9694\u7b26<br \/>\n   paste -d '`' ${TMP}\/size.txt ${TMP}\/down.txt > ${TMP}\/down_size.txt<\/p>\n<p>   #\u6392\u5e8f<br \/>\n   sort -n -r ${TMP}\/down_size.txt > ${TMP}\/down_size_sort.txt<\/p>\n<p>   #\u53bb\u6389\u540e\u9762\u7684\u5c3a\u5bf8<br \/>\n   sed 's\/.*`\/\/' ${TMP}\/down_size_sort.txt > ${TMP}\/temp.txt<\/p>\n<p>   ##### \u6790\u53d6\u51famp3 \u7684\u4e0b\u8f7d\u5730\u5740\u6216 wma\u7684\u4e0b\u8f7d\u5730\u5740 ##############<br \/>\n   grep -i \"word=mp3\" ${TMP}\/temp.txt | grep \"$title\" > ${TMP}\/down_mp3.txt<br \/>\n   grep -i \"word=wma\" ${TMP}\/temp.txt | grep \"$title\" > ${TMP}\/down_wma.txt<\/p>\n<p>   downline_mp3=$(awk 'END{print NR}' ${TMP}\/down_mp3.txt);<br \/>\n   downline_wma=$(awk 'END{print NR}' ${TMP}\/down_wma.txt);<br \/>\n   echo -e \"\\e[1;6m\\e[1;31m\u53d1\u73b0 ${downline_mp3} \u4e2a\u540d\u4e3a ${name}.mp3 \u4e0b\u8f7d\u5730\u5740\u3002\\e[1;6m\\e[00m\"<br \/>\n   echo -e \"\\e[1;6m\\e[1;31m\u53d1\u73b0 ${downline_wma} \u4e2a\u540d\u4e3a ${name}.wma \u4e0b\u8f7d\u5730\u5740\u3002\\e[1;6m\\e[00m\"<br \/>\n   # \u521d\u59cb\u5316\u8ba1\u6570\u5668<br \/>\n   j=1;<br \/>\n   # \u4f18\u5148\u4e0b\u8f7dmp3\u683c\u5f0f\u7684\u6b4c\u66f2<br \/>\n   while((j<=downline_mp3)); do\n      mp3=`awk 'NR=='\"$j\"'' ${TMP}\/down_mp3.txt | sed -e 's\/ \/\\\\ \/g'`\n      echo -e \"\\e[1;6m\\e[1;31m\u6b63\u5728\u4e0b\u8f7d${name}.mp3\\e[1;6m\\e[00m\"\n      #echo -e \"\\e[1;6m\\e[1;31m\u4e2d\u8f6c\u9875\u9762\u5730\u5740\u4e3a${mp3}\\e[1;6m\\e[00m\"\n      wget -O \"${TMP}\/transit.html\" \"$mp3\"\n      realURL=`iconv -f gbk -t utf8 -c ${TMP}\/transit.html | grep \"\n\n<li class=\\\"li\\\" style=\\\"margin-right:10px;\\\">\" | sed 's\/.*href=\"\/\/' | sed 's\/\" target=\"_blank\">.*\/\/'`<br \/>\n      #echo -e \"\\e[1;6m\\e[1;31m\u771f\u5b9e\u4e0b\u8f7d\u5730\u5740\u4e3a${realURL}\\e[1;6m\\e[00m\"<br \/>\n      if [ x`which axel` != x\"\" ];then<br \/>\n\t  axel -n $AXELNUM -a -o \"${TMP}\/${name}.mp3\" \"${realURL}\"<br \/>\n\t  else<br \/>\n\t  #wget\u592a\u6162\u4e86\u3002\u4f46\u662f\u5982\u679c\u6ca1\u6709\u5b89\u88c5axel,\u53ef\u4ee5\u628a\u4e0a\u9762\u4e00\u884c\u6ce8\u91ca\u6389\uff0c\u7528\u4e0b\u9762\u4e00\u884c\u4ee3\u66ff<br \/>\n      wget -c --tries=$TRYCOUNT $realURL -O \"${TMP}\/${name}.mp3\"<br \/>\n      fi<br \/>\n      if [ \"$?\" = 0 ]; then<br \/>\n         if [ `file -ib \"${TMP}\/${name}.mp3\" | sed -e 's\/\\\/.*\/\/g'` = \"audio\" ]; then<br \/>\n\t         if [ x`which mid3v2` != x\"\" ];then<br \/>\n\t\t\t\ttitle=`echo $name | sed -e 's\/-.*\/\/g'`<br \/>\n\t\t\t\tartist=`echo $name | sed -e 's\/.*-\/\/g' | sed -e 's\/.mp3\/\/g' | sed -e 's\/.wma\/\/g'`<br \/>\n\t\t\t\tmid3v2 -D \"${TMP}\/${name}.mp3\"<br \/>\n\t\t\t\tmid3v2 -t \"${title}\" -a \"${artist}\" \"${TMP}\/${name}.mp3\"<br \/>\n\t\t\t fi<br \/>\n            mv \"${TMP}\/${name}.mp3\" \"${SAVE}\/${name}.mp3\"<br \/>\n            downed=1;<br \/>\n            break;<br \/>\n         else<br \/>\n            echo -e \"\\e[1;6m\\e[1;31m\u4e0b\u8f7d ${name}.mp3 \u6587\u4ef6\u65e0\u6548\uff0c\u6b63\u5728\u5220\u9664\u91cd\u65b0\u4e0b\u8f7d\\e[1;6m\\e[00m\"<br \/>\n            rm \"${TMP}\/${name}.mp3\";<br \/>\n            ((j++))<br \/>\n         fi<br \/>\n      else<br \/>\n         echo -e \"\\e[1;6m\\e[1;31m\u4e0b\u8f7d ${name}.mp3 \u6587\u4ef6\u65e0\u6548\uff0c\u6b63\u5728\u5220\u9664\u91cd\u65b0\u4e0b\u8f7d\\e[1;6m\\e[00m\"<br \/>\n         rm \"${TMP}\/${name}.mp3\";<br \/>\n         ((j++))<br \/>\n      fi<br \/>\n   done<\/p>\n<p>   #\u5982\u679c\u4e0b\u8f7d\u6210\u529f\u7ee7\u7eed\u4e0b\u5176\u4f59\u7684\u6b4c<br \/>\n   #continue\u7528\u4e8e\u8df3\u8fc7\u5faa\u73af\u4f53\u4e2d\u7684\u540e\u7eed\u547d\u4ee4<br \/>\n   if [ \"$downed\" = 1 ] ; then<br \/>\n      ((i++))<br \/>\n      echo -e \"\\e[1;7m\\e[1;41m\u4e0b\u8f7d $name \u6210\u529f\\e[1;7m\\e[00m\"<br \/>\n      continue;<br \/>\n   fi<\/p>\n<p>   # \u5982\u679c\u6ca1\u6709mp3\u683c\u5f0f\u7684\u5219\u4e0b\u8f7dwma\u683c\u5f0f\u7684\u6b4c<br \/>\n   j=1;<br \/>\n   while((j<=downline_wma)); do\n      wma=`awk 'NR=='\"$j\"'' ${TMP}\/down_wma.txt`\n      echo -e \"\\e[1;6m\\e[1;31m\u6b63\u5728\u4e0b\u8f7d${name}.wma\\e[1;6m\\e[00m\"\n\n      #echo -e \"\\e[1;6m\\e[1;31m\u4e2d\u8f6c\u9875\u9762\u5730\u5740\u4e3a${mp3}\\e[1;6m\\e[00m\"\n      wget -O \"${TMP}\/transit.html\" \"$wma\"\n      realURL=`iconv -f gbk -t utf8 -c ${TMP}\/transit.html | grep \"\n\n<li class=\\\"li\\\" style=\\\"margin-right:10px;\\\">\" | sed 's\/.*href=\"\/\/' | sed 's\/\" target=\"_blank\">.*\/\/'`<br \/>\n      #echo -e \"\\e[1;6m\\e[1;31m\u771f\u5b9e\u4e0b\u8f7d\u5730\u5740\u4e3a${realURL}\\e[1;6m\\e[00m\"<br \/>\n      if [ x`which axel` != x\"\" ];then<br \/>\n\t  axel -n $AXELNUM -a -o \"${TMP}\/${name}.wma\" \"${realURL}\"<br \/>\n\t  else<br \/>\n\t  #wget\u592a\u6162\u4e86\u3002\u4f46\u662f\u5982\u679c\u6ca1\u6709\u5b89\u88c5axel,\u53ef\u4ee5\u628a\u4e0a\u9762\u4e00\u884c\u6ce8\u91ca\u6389\uff0c\u7528\u4e0b\u9762\u4e00\u884c\u4ee3\u66ff<br \/>\n      wget -c --tries=$TRYCOUNT $realURL -O \"${TMP}\/${name}.wma\"<br \/>\n      fi<br \/>\n      if [ \"$?\" = 0 ]; then<br \/>\n         if [ `file -ib \"${TMP}\/${name}.wma\" | sed -e 's\/\\\/.*\/\/g'` = \"application\" ]; then<br \/>\n\t\t\t#title=`echo $name | sed -e 's\/-.*\/\/g'`<br \/>\n\t\t\t#artist=`echo $name | sed -e 's\/.*-\/\/g' | sed -e 's\/.mp3\/\/g' | sed -e 's\/.wma\/\/g'`<br \/>\n\t\t\t#mid3v2 -D \"${TMP}\/${name}.wma\"<br \/>\n\t\t\t#mid3v2 -t \"${title}\" -a \"${artist}\" \"${TMP}\/${name}.wma\"<br \/>\n            mv \"${TMP}\/${name}.wma\" \"${SAVE}\/${name}.wma\"<br \/>\n            downed=1;<br \/>\n            break;<br \/>\n         else<br \/>\n            echo -e \"\\e[1;6m\\e[1;31m\u4e0b\u8f7d ${name}.wma \u6587\u4ef6\u65e0\u6548\uff0c\u6b63\u5728\u5220\u9664\u91cd\u65b0\u4e0b\u8f7d\\e[1;6m\\e[00m\"<br \/>\n            rm \"${TMP}\/${name}.wma\";<br \/>\n            ((j++))<br \/>\n         fi<br \/>\n      else<br \/>\n          echo -e \"\\e[1;6m\\e[1;31m\u4e0b\u8f7d ${name}.wma \u6587\u4ef6\u65e0\u6548\uff0c\u6b63\u5728\u5220\u9664\u91cd\u65b0\u4e0b\u8f7d\\e[1;6m\\e[00m\"<br \/>\n          rm \"${TMP}\/${name}.wma\";<br \/>\n          ((j++))<br \/>\n      fi<br \/>\n   done<\/p>\n<p>   ((i++))<br \/>\n   if [ \"$downed\" = 1 ] ; then<br \/>\n      echo -e \"\\e[1;7m\\e[1;41m\u4e0b\u8f7d $name \u6210\u529f\\e[1;7m\\e[00m\"<br \/>\n   else<br \/>\n      echo -e \"\\e[1;7m\\e[1;41m\u4e0b\u8f7d $name \u5931\u8d25\\e[1;7m\\e[00m\"<br \/>\n   fi<br \/>\ndone<br \/>\nrm -fr ${TMP}<br \/>\nexit 0 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>#!\/bin\/bash #Copyright (c) 2006 bones7456 (bones7456@gmail.com) #License: GPLv2 #\u975e\u5e38\u611f\u8c22ubuntu\u793e\u533a\u548conelea&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-328","post","type-post","status-publish","format-standard","hentry","category-35"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=328"}],"version-history":[{"count":0,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/328\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}