色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

Python爬取365好書中小說代碼實例

瀏覽:23日期:2022-08-05 11:18:28

需要轉載的小伙伴轉載后請注明轉載的地址

需要用到的庫

from bs4 import BeautifulSoup import requests import time

365好書鏈接:http://www.365haoshu.com/ 爬取《我以月夜寄相思》小說

首頁進入到目錄:http://www.365haoshu.com/Book/Chapter/List.aspx?NovelId=3026

獲取小說的每個章節的名稱和章節鏈接

打開瀏覽器的開發者工具,查找一個章節:如下圖,找到第一章的名稱和href(也就是第一章節內容頁面的鏈接),開始寫代碼

Python爬取365好書中小說代碼實例

from bs4 import BeautifulSoup import requestsimport time# 分別導入time、requests、BeautifulSoup庫url = ’http://www.365haoshu.com/Book/Chapter/’# 鏈接地址url,這兒url章節鏈接沒全寫出來是因為下面獲取章節鏈接時要用到這些urlreq = requests.get(url+’List.aspx?NovelId=0326’)# 打開章節頁面,req_bf = BeautifulSoup(req.text,'html.parser')print(req_bf)# 將打開的頁面以text打印出來div = req_bf.find_all(’div’,class_=’user-catalog-ul-li’)# 分析頁面,所需要的章節名和章節鏈接是在div標簽,屬性class為user-catalog-ul-li下# 找到這個下的內容,并打印s = []for d in div: s.append(d.find(’a’))print(s)# 獲取div下面的a標簽下的內容names=[] # 存儲章節名hrefs=[] # 存儲章節鏈接for i in s: names.append(i.find(’span’).string) hrefs.append(url + i.get(’href’))# 將所有的章節和章節鏈接存入的列表中觀察href后的鏈接和打開章節內容頁面的鏈接是不完全的相同的, 所以要拼接使得瀏覽器能直接打開章節內容

獲取到鏈接和章節名后打開一個章節獲取文本內容;

和獲取章節名方法一致,一步一步查找到內容的位置

txt = requests.get(hrefs[0])div_bf = BeautifulSoup(txt.text,’html.parser’)div = div_bf.find_all(’div’,class_=’container user-reading-online pos-rel’)#print(div)ps = BeautifulSoup(str(div),'html.parser')p=ps.find_all(’p’,class_=’p-content’)print(p)txt=[]for i in p: txt.append(i.string+’n’)print(txt)

獲取單一章節完成

接下來整理代碼,獲取整個小說的內容,代碼如下:

# --*-- coding=utf-8 --*--from bs4 import BeautifulSoupimport requestsimport timeclass spiderstory(object): def __init__(self): # 初始化 self.url = ’http://www.365haoshu.com/Book/Chapter/’ self.names = [] # 存放章節名 self.hrefs = [] # 存放章節鏈接 def get_urlAndName(self): ’’’獲取章節名和章節鏈接’’’ req = requests.get(url=self.url+’List.aspx?NovelId=0326’) # 獲取章節目錄頁面 time.sleep(1) # 等待1秒 div_bf = BeautifulSoup(req.text,'html.parser') # req后面跟text和html都行 div = div_bf.find_all(’div’, class_=’user-catalog-ul-li’) # 查找內容,標簽為div,屬性為class=’user-catalog-ul-li’ a_bf = BeautifulSoup(str(div)) a = a_bf.find_all(’a’) # # 查找內容,標簽為a for i in a: self.names.append(i.find(’span’).string) # 獲取內容直接string就行 self.hrefs.append(self.url + i.get(’href’)) # 獲取鏈接 def get_text(self,url): ’’’獲取章節內容’’’ req = requests.get(url=url) div_bf = BeautifulSoup(req.text,'html.parser') div = div_bf.find_all(’div’, class_=’container user-reading-online pos-rel’) # 查找內容 ps = BeautifulSoup(str(div), 'html.parser') p = ps.find_all(’p’, class_=’p-content’) text = [] for each in p: text.append(each.string) print(text) return text # 將獲得的內容返回 def writer(self, name, path, text): ’’’寫入text文檔中’’’ with open(path, ’a’, encoding=’utf-8’) as f: f.write(name + ’n’) f.writelines(text) f.write(’nn’)if __name__ == '__main__': # 運行入口 s = spiderstory() s.get_urlAndName() le = len(s.names) for i in range(le): # 利用for循環獲得所有的內容 name = s.names[i] text = str(s.get_text(s.hrefs[i])) s.writer(name,'我以月夜寄相思.txt',text) print(’下載完畢!!!’)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久久国产乱子伦精品 | 欧美一及片 | 中文字幕一区二区三区视频在线 | 欧美做a一级视频免费观看 欧美做爱毛片 | 欧美日韩大片 | 成人亚洲国产综合精品91 | 偷柏自拍亚洲欧美综合在线图 | 亚洲视频免费看 | 日本道在线播放 | 亚洲欧美日韩高清综合678 | 成人欧美日韩视频一区 | 飘花国产午夜精品不卡 | 久久99精品热在线观看15 | 免费高清在线爱做视频 | 成人午夜免费观看 | 久草在线影 | www.黄色片网站 | 精品视频国产狼人视频 | 国产在线啪 | 在线另类视频 | 欧美一区二区三区不卡免费 | 亚洲精品xxxx | 99国产精品农村一级毛片 | 99久久免费国产香蕉麻豆 | 欧美在线香蕉在线现视频 | 日韩视频大全 | 国内久久精品 | 亚洲 [12p]| 免费看黄色片的网站 | 国产欧美二区三区 | 国产系列在线 | 中国国产一国产一级毛片视频 | 成人69 | 日本不卡一区视频 | 亚洲一级毛片在线观播放 | 亚洲国产天堂在线网址 | 国产欧美日韩不卡在线播放在线 | 久久精品国产只有精品6 | 欧美日韩精品乱国产538 | 一级片国产 | 成人国产精品一级毛片天堂 |