Python制作爬蟲(chóng)采集小說(shuō)
開(kāi)發(fā)工具:python3.4
操作系統(tǒng):win8
主要功能:去指定小說(shuō)網(wǎng)頁(yè)爬小說(shuō)目錄,按章節(jié)保存到本地,并將爬過(guò)的網(wǎng)頁(yè)保存到本地配置文件。
被爬網(wǎng)站:http://www.cishuge.com/
小說(shuō)名稱(chēng):靈棺夜行
代碼出處:本人親自碼的
import urllib.request import http.cookiejar import socket import time import re timeout = 20 socket.setdefaulttimeout(timeout) sleep_download_time = 10 time.sleep(sleep_download_time) def makeMyOpener(head = { 'Connection': 'Keep-Alive', 'Accept': 'text/html, application/xhtml+xml, */*', 'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko' }): cj = http.cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) header = [] for key, value in head.items(): elem = (key, value) header.append(elem) opener.addheaders = header return opener def saveFile(save_path,txts): f_obj = open(save_path,'w+') for item in txts: f_obj.write(item+'\n') f_obj.close() #get_code_list code_list='http://www.cishuge.com/read/0/771/' oper = makeMyOpener() uop = oper.open(code_list,timeout=1000) data = uop.read().decode('gbk','ignore') pattern = re.compile('<li><a href="(.*?)".*?>(.*?)</a></li>',re.S) items = re.findall(pattern,data) print ('獲取列表完成') url_path='url_file.txt' url_r=open(url_path,'r') url_arr=url_r.readlines(100000) url_r.close() print (len(url_arr)) url_file=open(url_path,'a') print ('獲取已下載網(wǎng)址') for tmp in items: save_path = tmp[1].replace(' ','')+'.txt' url = code_list+tmp[0] if url+'\n' in url_arr: continue print('寫(xiě)日志:'+url+'\n') url_file.write(url+'\n') opene = makeMyOpener() op1 = opene.open(url,timeout=1000) data = op1.read().decode('gbk','ignore') opene.close() pattern = re.compile(' (.*?)<br />',re.S) txts = re.findall(pattern,data) saveFile(save_path,txts) url_file.close()
雖然代碼還是有點(diǎn)瑕疵,還是分享給大家,一起改進(jìn)
相關(guān)文章
python更換國(guó)內(nèi)鏡像源三種實(shí)用方法
這篇文章主要給大家介紹了關(guān)于python更換國(guó)內(nèi)鏡像源三種實(shí)用方法的相關(guān)資料,更換Python鏡像源可以幫助解決使用pip安裝包時(shí)速度過(guò)慢或無(wú)法連接的問(wèn)題,需要的朋友可以參考下2023-09-09使用Python的urllib2模塊處理url和圖片的技巧兩則
這篇文章主要介紹了使用Python的urllib2模塊處理url和圖片的兩個(gè)小技巧,分別是獲取帶有中文參數(shù)的url內(nèi)容和獲取遠(yuǎn)程圖片的大小和尺寸,需要的朋友可以參考下2016-02-02OpenCV實(shí)戰(zhàn)記錄之基于分水嶺算法的圖像分割
在機(jī)器視覺(jué)中,有時(shí)需要對(duì)產(chǎn)品進(jìn)行檢測(cè)和計(jì)數(shù),其難點(diǎn)無(wú)非是對(duì)于產(chǎn)品的圖像分割,這篇文章主要給大家介紹了關(guān)于OpenCV實(shí)戰(zhàn)記錄之基于分水嶺算法的圖像分割的相關(guān)資料,需要的朋友可以參考下2023-02-02Pytorch實(shí)現(xiàn)tensor序列化和并行化的示例詳解
這篇文章主要介紹了Pytorch實(shí)現(xiàn)tensor序列化和并行化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的同學(xué)們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12利用matplotlib實(shí)現(xiàn)兩張子圖分別畫(huà)函數(shù)圖
這篇文章主要介紹了利用matplotlib實(shí)現(xiàn)兩張子圖分別畫(huà)函數(shù)圖問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08