Python实现的飞速中文网小说下载脚本
1.JavaScript 加密什么的最讨厌了 :-(
1).eval 一个不依赖外部变量的函数立即调用很天真,看我 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-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='下载飞速中文网小说') 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)

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tiada fungsi jumlah terbina dalam dalam bahasa C, jadi ia perlu ditulis sendiri. Jumlah boleh dicapai dengan melintasi unsur -unsur array dan terkumpul: Versi gelung: SUM dikira menggunakan panjang gelung dan panjang. Versi Pointer: Gunakan petunjuk untuk menunjuk kepada unsur-unsur array, dan penjumlahan yang cekap dicapai melalui penunjuk diri sendiri. Secara dinamik memperuntukkan versi Array: Perlawanan secara dinamik dan uruskan memori sendiri, memastikan memori yang diperuntukkan dibebaskan untuk mengelakkan kebocoran ingatan.

Ia tidak mudah untuk menukar XML ke PDF secara langsung pada telefon anda, tetapi ia boleh dicapai dengan bantuan perkhidmatan awan. Adalah disyorkan untuk menggunakan aplikasi mudah alih ringan untuk memuat naik fail XML dan menerima PDF yang dihasilkan, dan menukarnya dengan API awan. API awan menggunakan perkhidmatan pengkomputeran tanpa pelayan, dan memilih platform yang betul adalah penting. Kerumitan, pengendalian kesilapan, keselamatan, dan strategi pengoptimuman perlu dipertimbangkan ketika mengendalikan penjanaan XML dan penjanaan PDF. Seluruh proses memerlukan aplikasi front-end dan API back-end untuk bekerjasama, dan ia memerlukan pemahaman tentang pelbagai teknologi.

XML boleh ditukar kepada imej dengan menggunakan perpustakaan penukar XSLT atau imej. XSLT Converter: Gunakan pemproses XSLT dan stylesheet untuk menukar XML ke imej. Perpustakaan Imej: Gunakan perpustakaan seperti PIL atau ImageMagick untuk membuat imej dari data XML, seperti bentuk lukisan dan teks.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Langkah -langkah untuk menukar XML ke MP3 termasuk: Ekstrak data audio dari XML: menghuraikan fail XML, cari rentetan pengekodan base64 yang mengandungi data audio, dan ekodkannya ke dalam format binari. Kodkan data audio ke mp3: Pasang pengekod MP3 dan tetapkan parameter pengekodan, encang data audio binari ke format MP3, dan simpannya ke fail.

Terdapat beberapa cara untuk mengubah format XML: mengedit secara manual dengan editor teks seperti Notepad; Memformat secara automatik dengan alat pemformatan XML dalam talian atau desktop seperti XMLBeAutifier; Tentukan peraturan penukaran menggunakan alat penukaran XML seperti XSLT; atau menghuraikan dan beroperasi menggunakan bahasa pengaturcaraan seperti Python. Berhati -hati apabila mengubahsuai dan membuat sandaran fail asal.

Walaupun berbeza dan berbeza berkaitan dengan perbezaan, ia digunakan secara berbeza: berbeza (kata sifat) menggambarkan keunikan perkara itu sendiri dan digunakan untuk menekankan perbezaan antara perkara; Berbeza (kata kerja) mewakili tingkah laku atau keupayaan perbezaan, dan digunakan untuk menggambarkan proses diskriminasi. Dalam pengaturcaraan, berbeza sering digunakan untuk mewakili keunikan unsur -unsur dalam koleksi, seperti operasi deduplikasi; Berbeza dicerminkan dalam reka bentuk algoritma atau fungsi, seperti membezakan ganjil dan bahkan nombor. Apabila mengoptimumkan, operasi yang berbeza harus memilih algoritma dan struktur data yang sesuai, sementara operasi yang berbeza harus mengoptimumkan perbezaan antara kecekapan logik dan memberi perhatian untuk menulis kod yang jelas dan mudah dibaca.

Pengubahsuaian data XML boleh dilakukan secara manual atau menggunakan bahasa pengaturcaraan dan perpustakaan. Pengubahsuaian manual sesuai untuk sedikit pengubahsuaian kepada dokumen kecil, termasuk menambah, mengubahsuai, atau memadam elemen dan atribut. Untuk pengubahsuaian yang lebih kompleks, bahasa pengaturcaraan dan perpustakaan seperti Python's XML.Dom dan Javax.xml.parsers Java, yang menyediakan alat untuk memproses data XML. Apabila mengubah suai data XML, pastikan kesahihannya, buat sandaran, dan ikuti peraturan sintaks XML, termasuk tag dan sifat yang betul.
