python 3 爬取某小說網站小說,註釋詳細
阿新 • • 發佈:2018-12-14
每一行都有註釋,不多解釋了
import requests from bs4 import BeautifulSoup import os if __name__ == '__main__': # 要下載的網頁 url = 'https://www.biqubao.com/quanben/' # 網站根網址 root_url = 'https://www.biqubao.com' # 儲存本地路徑 path = 'F:\\python\\txt' # 解析網址 req = requests.get(url) # 設定編碼,瀏覽器檢視網站編碼:F12,控制開輸入document.characterSet回車即可檢視 req.encoding = 'gbk' # 獲取網頁所有內容 soup = BeautifulSoup(req.text, 'html.parser') # 查詢網頁中div的id為main的標籤 list_tag = soup.div(id="main") # 檢視div內所有裡標籤 li = list_tag[0](['li']) # 刪除第一個沒用的標籤 del li[0] # 迴圈遍歷 for i in li: # 獲取到a標籤間的內容---小說型別 txt_type = i.a.string # 獲取a標籤的href地址值---小說網址 short_url = (i(['a'])[1].get('href')) # 獲取第三個span標籤的值---作者 author = i(['span'])[3].string # 獲取網頁設定網頁編碼 req = requests.get(root_url + short_url) req.encoding = 'gbk' # 解析網頁 soup = BeautifulSoup(req.text, "html.parser") list_tag = soup.div(id="list") # 獲取小說名 name = list_tag[0].dl.dt.string print("型別:{} 短址:{} 作者:{} 小說名:{}".format(txt_type, short_url, author, name)) # 建立同名資料夾 # paths = path + '\\' + name if not os.path.exists(path): # 獲取當前目錄並組合新目錄 # os.path.join(path, name) os.mkdir(path) # 迴圈所有的dd標籤 for dd_tag in list_tag[0].dl.find_all('dd'): # 章節名 zjName = dd_tag.string # 章節地址 zjUrl = root_url + dd_tag.a.get('href') # 訪問網址爬取章節內容 req2 = requests.get(zjUrl) req2.encoding = 'gbk' zj_soup = BeautifulSoup(req2.text, "html.parser") content_tag = zj_soup.div.find(id="content") # 把空格內容替換成換行 text = str(content_tag.text.replace('\xa0', '\n')) text.replace('\ufffd', '\n') # 寫入檔案操作'a'追加 with open(path + "\\" + name + ".txt", 'a') as f: f.write('\n' + '\n' + zjName) f.write(text) print("{}------->寫入完畢".format(zjName))