最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年04月23日 09:18:20   作者:依云  
這篇文章主要介紹了Python實(shí)現(xiàn)的飛速中文網(wǎng)小說(shuō)下載腳本,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下

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

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

2.Requests 效率比 lxml 自己那個(gè)好太多
3.progressbar 太先進(jìn)了,我還是自個(gè)兒寫(xiě)吧……
4.argparse 寫(xiě) Python 命令行程序必備啊~
5.string.Template也很好用哦
6.以下是主代碼啦,除了標(biāo)準(zhǔn)庫(kù)以及 lxml 和 requests,沒(méi)有的模塊都在無(wú)所不能的 winterpy 倉(cāng)庫(kù)里。其實(shí)主代碼也在的。

#!/usr/bin/env python3
# vim:fileencoding=utf-8

import sys
from functools import partial
from string import Template
import argparse
import base64
from urllib.parse import unquote

from lxml.html import fromstring
import requests

from htmlutils import extractText
from termutils import foreach

session = 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 True

def 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 title

if __name__ == '__main__':
 parser = argparse.ArgumentParser(description='下載飛速中文網(wǎng)小說(shuō)')
 parser.add_argument('url',
           help='小說(shuō)首頁(yè)鏈接')
 parser.add_argument('name', default='$name-$author.txt', nargs='?',
           help='保存文件名模板(支持 $name 和 $author')
 parser.add_argument('-s', '--start', default=1, type=int, metavar='N',
           help='下載起始頁(yè)位置(以 1 開(kāi)始)')
 args = parser.parse_args()
 main(args.url, args.name, args.start-1)

相關(guān)文章

  • Python re模塊介紹

    Python re模塊介紹

    這篇文章主要介紹了Python re模塊介紹,需要的朋友可以參考下
    2014-11-11
  • Python tkinter庫(kù)實(shí)現(xiàn)登錄注冊(cè)基本功能

    Python tkinter庫(kù)實(shí)現(xiàn)登錄注冊(cè)基本功能

    Python自帶了tkinter模塊,實(shí)質(zhì)上是一種流行的面向?qū)ο蟮腉UI工具包 TK 的Python編程接口,提供了快速便利地創(chuàng)建GUI應(yīng)用程序的方法,下面這篇文章主要給大家介紹了關(guān)于tkinter庫(kù)制作一個(gè)簡(jiǎn)單的登錄注冊(cè)小程序,需要的朋友可以參考下
    2022-12-12
  • pandas中std和numpy的np.std區(qū)別及說(shuō)明

    pandas中std和numpy的np.std區(qū)別及說(shuō)明

    這篇文章主要介紹了pandas中std和numpy的np.std區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 簡(jiǎn)單幾步教你學(xué)會(huì)Python接口自動(dòng)化測(cè)試

    簡(jiǎn)單幾步教你學(xué)會(huì)Python接口自動(dòng)化測(cè)試

    這篇文章主要介紹了簡(jiǎn)單幾步教你學(xué)會(huì)Python接口自動(dòng)化測(cè)試,本文從一個(gè)簡(jiǎn)單的登錄接口測(cè)試入手,一步步調(diào)整優(yōu)化接口調(diào)用姿勢(shì),期望讀者可以通過(guò)本文對(duì)接口自動(dòng)化測(cè)試有一個(gè)大致的了解,需要的朋友可以參考下
    2023-08-08
  • 利用Python的turtle庫(kù)繪制玫瑰教程

    利用Python的turtle庫(kù)繪制玫瑰教程

    今天小編就為大家分享一篇利用Python的turtle庫(kù)繪制玫瑰教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • CentOS安裝OpenSSL1.1.1全過(guò)程

    CentOS安裝OpenSSL1.1.1全過(guò)程

    文章介紹了從頭開(kāi)始編譯安裝Python3.10的步驟,包括檢查和安裝必要的依賴項(xiàng)、下載并解壓源碼、配置和編譯環(huán)境、創(chuàng)建軟連接以及配置環(huán)境變量,最后驗(yàn)證安裝是否成功
    2025-03-03
  • 兩個(gè)很實(shí)用的Python裝飾器詳解

    兩個(gè)很實(shí)用的Python裝飾器詳解

    這篇文章主要為大家介紹了Python的裝飾器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 初學(xué)者學(xué)習(xí)Python好還是Java好

    初學(xué)者學(xué)習(xí)Python好還是Java好

    在本篇文章里小編給大家分享的是關(guān)于初學(xué)者學(xué)習(xí)Python好還是Java好的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • Python jieba庫(kù)用法及實(shí)例解析

    Python jieba庫(kù)用法及實(shí)例解析

    這篇文章主要介紹了Python jieba庫(kù)用法及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python代碼如何注釋

    python代碼如何注釋

    在本篇文章里小編給大家整理了關(guān)于python代碼如何注釋的相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06

最新評(píng)論

寻甸| 慈溪市| 平远县| 峡江县| 庄浪县| 喀喇沁旗| 常州市| 兰考县| 报价| 东丰县| 长海县| 玛多县| 南丹县| 溧水县| 石河子市| 正阳县| 弥勒县| 大丰市| 平江县| 和田市| 佛学| 九江县| 萨迦县| 慈溪市| 延津县| 治县。| 平利县| 沅江市| 崇左市| 绍兴市| 巴里| 安西县| 江安县| 思茅市| 陆良县| 来凤县| 梨树县| 九台市| 榆中县| 廉江市| 平遥县|