本文來(lái)自我的網(wǎng)站-跨時(shí)代的jay
python老師讓我們?nèi)ヅ廊バ≌f(shuō)
在網(wǎng)上找了很久的代碼
然而并沒(méi)有什么卵用
因?yàn)樘喽也贿m合每個(gè)網(wǎng)站
還用到了正則表達(dá)式
對(duì)于這樣不通用的代碼是不能接受的
代碼實(shí)現(xiàn)的適用條件
要求小說(shuō)的章節(jié)url后面的數(shù)字是連續(xù)的
或者是有一定規(guī)律的
第一章url
第二章url
像這樣有規(guī)律的
使用此代碼
當(dāng)然有的網(wǎng)站是毫無(wú)規(guī)律的
這時(shí)可以去多嘗試幾個(gè)網(wǎng)站
只要能找到規(guī)律了
就可以了
代碼實(shí)現(xiàn)的步驟
修改四個(gè)地方即可
在此之前也請(qǐng)將需要的庫(kù)下載
import requests
from lxml import etree
下載庫(kù)
pip install requests
pip install lxml
步驟一:修改url
可以看到這個(gè)代碼實(shí)現(xiàn)的功能就是用一個(gè)循環(huán)去遍歷各個(gè)章節(jié)的url
前一大半部分的url都是一樣的
只是在****.html是不一樣的
所以用一個(gè){}代替
而這個(gè)的值用format(i) in range(xxx,xxx)去循環(huán)遍歷
注意:如果后綴是htm,是要將這個(gè)html改為htm的
range中的第一個(gè)參數(shù)就是第一章的那個(gè)數(shù)字
如果你想下載10章,那么在這個(gè)基礎(chǔ)上+10
(前提是這個(gè)是連續(xù)的,如果是每+5是下一個(gè)章節(jié),那么這里也是要變化的)
步驟2
下載將文件保存在那個(gè)位置
這個(gè)自行處理就好
由于我用的是linux
所有設(shè)置路徑的方式可能不太一樣
步驟3
添加標(biāo)題的xpath
我們來(lái)到這個(gè)小說(shuō)的第一個(gè)章節(jié)
以google瀏覽器為例子
反鍵點(diǎn)擊檢查
再點(diǎn)擊如圖左上角的那個(gè)箭頭
再去定位標(biāo)題
選中后 如圖所示
再反鍵定位好位置后
在右邊的代碼中可以看到陰影的部分
反鍵copy,選中xpath
粘貼到步驟3那里
title = selector.xpath('*****/text()')
將xpath的內(nèi)容給*****即可
然后就是主要內(nèi)容了
同樣的步驟
先點(diǎn)擊左上角的箭頭
再去定位內(nèi)容后
反鍵找到對(duì)應(yīng)的代碼
再反鍵copy xpath
text = selector.xpath('*****/text()')
#將xpath的內(nèi)容給*****即可
然后就可以靜靜的等待整部小說(shuō)下載好咯
可能會(huì)有點(diǎn)慢
建議每100章下載一次
也許中間會(huì)出現(xiàn)問(wèn)題
因?yàn)闊o(wú)法確定他在哪一章會(huì)出現(xiàn)不是連續(xù)的情況
所以要靈活的使用該代碼
再去修改相應(yīng)range中的內(nèi)容即可
我的微信公眾號(hào):跨時(shí)代的jay
關(guān)注我哦,定時(shí)推送知識(shí)