国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本

2020-02-23 00:50:42
字體:
來源:轉載
供稿:網(wǎng)友

1.JavaScript 加密什么的最討厭了 :-(

1).eval 一個不依賴外部變量的函數(shù)立即調用很天真,看我 nodejs 來干掉你!
2).HTTP 請求的驗證首先嘗試 Referer,「小甜餅」沒有想像中的那么重要。
3).curl 和各命令行工具處理起文本很順手呢
4).但是 Python 也沒多幾行呢

2.Requests 效率比 lxml 自己那個好太多
3.progressbar 太先進了,我還是自個兒寫吧……
4.argparse 寫 Python 命令行程序必備啊~
5.string.Template也很好用哦
6.以下是主代碼啦,除了標準庫以及 lxml 和 requests,沒有的模塊都在無所不能的 winterpy 倉庫里。其實主代碼也在的。

#!/usr/bin/env python3# vim:fileencoding=utf-8import sysfrom functools import partialfrom string import Templateimport argparseimport base64from urllib.parse import unquotefrom lxml.html import fromstringimport requestsfrom htmlutils import extractTextfrom termutils import foreachsession = requests.Session()def main(index, filename='$name-$author.txt', start=0): r = session.get(index) r.encoding = 'gb18030' doc = fromstring(r.text, base_url=index) doc.make_links_absolute() name = doc.xpath('//div[@class="info"]/p[1]/a/text()')[0] author = doc.xpath('//div[@class="info"]/p[1]/span/text()')[0].split()[-1] nametmpl = Template(filename) fname = nametmpl.substitute(name=name, author=author) with open(fname, 'w') as f:  sys.stderr.write('下載到文件 %s。/n' % fname)  links = doc.xpath('//div[@class="chapterlist"]/ul/li/a')  try:   foreach(links, partial(gather_content, f.write), start=start)  except KeyboardInterrupt:   sys.stderr.write('/n')   sys.exit(130) sys.stderr.write('/n') return Truedef gather_content(write, i, l): # curl -XPOST -F bookid=2747 -F chapterid=2098547 'http://www.feisuzw.com/skin/hongxiu/include/fe1sushow.php' #   --referer http://www.feisuzw.com/Html/2747/2098547.html # tail +4 # base64 -d # sed 's/&#&/u/g' # ascii2uni -qaF # ascii2uni -qaJ # <p> paragraphs url = l.get('href') _, _, _, _, bookid, chapterid = url.split('/') chapterid = chapterid.split('.', 1)[0] r = session.post('http://www.feisuzw.com/skin/hongxiu/include/fe1sushow.php', data={  'bookid': bookid, 'chapterid': chapterid, }, headers={'Referer': url}) text = r.content[3:] # strip BOM text = base64.decodebytes(text).replace(b'&#&', br'/u') text = text.decode('unicode_escape') text = unquote(text) text = text.replace('<p>', '').replace('</p>', '/n/n') title = l.text write(title) write('/n/n') write(text) write('/n') return titleif __name__ == '__main__': parser = argparse.ArgumentParser(description='下載飛速中文網(wǎng)小說') parser.add_argument('url',           help='小說首頁鏈接') parser.add_argument('name', default='$name-$author.txt', nargs='?',           help='保存文件名模板(支持 $name 和 $author') parser.add_argument('-s', '--start', default=1, type=int, metavar='N',           help='下載起始頁位置(以 1 開始)') args = parser.parse_args() main(args.url, args.name, args.start-1)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湛江市| 永济市| 南城县| 镇康县| 丰原市| 兰考县| 阿克苏市| 精河县| 荆门市| 滨州市| 曲麻莱县| 沿河| 陇西县| 双峰县| 龙游县| 肥东县| 军事| 四川省| 南昌市| 石柱| 霍邱县| 乡宁县| 六枝特区| 高淳县| 长宁县| 清涧县| 四子王旗| 自贡市| 武夷山市| 巴南区| 惠安县| 开远市| 家居| 西宁市| 衡南县| 怀来县| 谷城县| 福鼎市| 雷山县| 大同县| 翁牛特旗|