欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 爬取小說并下載的示例

 更新時間:2020年12月07日 15:58:29   作者:Jack-Cherish  
這篇文章主要介紹了python 爬取小說并下載的示例,幫助大家更好的理解和學(xué)習(xí)python爬蟲,感興趣的朋友可以了解下

代碼

import requests
import time
from tqdm import tqdm
from 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 content

if __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')

下載效果:

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

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

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

但是,我不建議這樣做。

我們要做一個友好的爬蟲,如果我們?nèi)ヌ崴?,那么我們訪問的服務(wù)器也會面臨更大的壓力。

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

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

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

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

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

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

以上就是python 爬取小說并下載的示例的詳細(xì)內(nèi)容,更多關(guān)于python 爬取小說下載的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python內(nèi)建模塊collections實現(xiàn)特殊容器數(shù)據(jù)類型

    Python內(nèi)建模塊collections實現(xiàn)特殊容器數(shù)據(jù)類型

    collections模塊是Python的內(nèi)建模塊之一,它實現(xiàn)了特殊的容器數(shù)據(jù)類型,提供了Python內(nèi)建的數(shù)據(jù)類型dict、list、set、和tuple的高效替代選擇
    2023-06-06
  • 在Django的模型和公用函數(shù)中使用惰性翻譯對象

    在Django的模型和公用函數(shù)中使用惰性翻譯對象

    這篇文章主要介紹了在Django的模型和公用函數(shù)中使用惰性翻譯對象,Django是豐富多彩的Python框架中人氣最高的一個,需要的朋友可以參考下
    2015-07-07
  • python環(huán)境下安裝opencv庫的方法

    python環(huán)境下安裝opencv庫的方法

    這篇文章主要介紹了python環(huán)境下安裝opencv庫的方法 ,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Python爬蟲之requests庫基本介紹

    Python爬蟲之requests庫基本介紹

    大家好,本篇文章主要講的是Python爬蟲之requests庫基本介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python NumPy創(chuàng)建數(shù)組方法

    Python NumPy創(chuàng)建數(shù)組方法

    這篇文章主要介紹了Python NumPy創(chuàng)建數(shù)組方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • python讀取文本繪制動態(tài)速度曲線

    python讀取文本繪制動態(tài)速度曲線

    這篇文章主要為大家詳細(xì)介紹了python讀取文本繪制動態(tài)速度曲線,多圖同步顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python內(nèi)置模塊collections詳解

    python內(nèi)置模塊collections詳解

    這篇文章主要介紹了python內(nèi)置模塊collections詳解,collections是Python內(nèi)建的一個集合模塊,提供了許多有用的集合類,python提供了很多非常好用的基本類型,比如不可變類型tuple,我們可以輕松地用它來表示一個二元向量,需要的朋友可以參考下
    2023-09-09
  • Python enumerate內(nèi)置庫用法解析

    Python enumerate內(nèi)置庫用法解析

    這篇文章主要介紹了Python enumerate內(nèi)置庫用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • python中itertools模塊使用小結(jié)

    python中itertools模塊使用小結(jié)

    itertools 是python的迭代器模塊,itertools提供的生成迭代器的函數(shù),相當(dāng)高效且節(jié)省內(nèi)存。使用這些工具,你將能夠創(chuàng)建自己定制的迭代器用于高效率的循環(huán)。接下來通過本文給大家介紹python中itertools模塊使用,感興趣的朋友一起看看吧
    2021-11-11

最新評論