国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python 爬取小說并下載的示例

瀏覽:132日期:2022-07-02 18:47:56

代碼

import requestsimport timefrom tqdm import tqdmfrom bs4 import BeautifulSoup''' Author: Jack Cui Wechat: https://mp.weixin.qq.com/s/OCWwRVDFNslIuKyiCVUoTA'''def get_content(target): req = requests.get(url = target) req.encoding = ’utf-8’ html = req.text bf = BeautifulSoup(html, ’lxml’) texts = bf.find(’div’, id=’content’) content = texts.text.strip().split(’xa0’*4) return contentif __name__ == ’__main__’: server = ’https://www.xsbiquge.com’ book_name = ’詭秘之主.txt’ target = ’https://www.xsbiquge.com/15_15338/’ req = requests.get(url = target) req.encoding = ’utf-8’ html = req.text chapter_bs = BeautifulSoup(html, ’lxml’) chapters = chapter_bs.find(’div’, id=’list’) chapters = chapters.find_all(’a’) for chapter in tqdm(chapters): chapter_name = chapter.string url = server + chapter.get(’href’) content = get_content(url) with open(book_name, ’a’, encoding=’utf-8’) as f: f.write(chapter_name) f.write(’n’) f.write(’n’.join(content)) f.write(’n’)

下載效果:

python 爬取小說并下載的示例

可以看到,小說內(nèi)容保存到“詭秘之主.txt”中,小說一共 1416 章,下載需要大約 20 分鐘,每秒鐘大約下載 1 個章節(jié)。

下載完成,實際花費了 27 分鐘。

20 多分鐘下載一本小說,你可能感覺太慢了。想提速,可以使用多進程,大幅提高下載速度。如果使用分布式,甚至可以1秒鐘內(nèi)下載完畢。

但是,我不建議這樣做。

我們要做一個友好的爬蟲,如果我們?nèi)ヌ崴伲敲次覀冊L問的服務器也會面臨更大的壓力。

以我們這次下載小說的代碼為例,每秒鐘下載 1 個章節(jié),服務器承受的壓力大約 1qps,意思就是,一秒鐘請求一次。

如果我們 1 秒同時下載 1416 個章節(jié),那么服務器將承受大約 1416 qps 的壓力,這還是僅僅你發(fā)出的并發(fā)請求數(shù),再算上其他的用戶的請求,并發(fā)量可能更多。

如果服務器資源不足,這個并發(fā)量足以一瞬間將服務器“打死”,特別是一些小網(wǎng)站,都很脆弱。

過大并發(fā)量的爬蟲程序,相當于發(fā)起了一次 CC 攻擊,并不是所有網(wǎng)站都能承受百萬級別并發(fā)量的。

所以,寫爬蟲,一定要謹慎,勿給服務器增加過多的壓力,滿足我們的獲取數(shù)據(jù)的需求,這就夠了。

你好,我也好,大家好才是真的好。

以上就是python 爬取小說并下載的示例的詳細內(nèi)容,更多關于python 爬取小說下載的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 银川市| 郯城县| 平阳县| 安福县| 乌恰县| 英吉沙县| 榆树市| 墨江| 修水县| 阿鲁科尔沁旗| 太仓市| 北流市| 红原县| 长白| 渝北区| 科尔| 日照市| 太谷县| 翁源县| 辽阳市| 孙吴县| 丹凤县| 监利县| 黑水县| 周至县| 永川市| 开化县| 盐边县| 桃江县| 武川县| 铁岭县| 平利县| 溧水县| 洞口县| 乳源| 河曲县| 元氏县| 祥云县| 襄樊市| 普宁市| 广元市|