爬蟲練習——爬取縱橫中文網

?avoid發表於2020-10-19

爬蟲練習——爬取縱橫中文網

import requests,os                                                          #匯入模組
from lxml import etree
ress = requests.get('http://book.zongheng.com/store.html')                  #縱橫中文的書庫
html = etree.HTML(ress.text)                                                #轉譯
db = html.xpath('//div[@class="bookname"]/a/@href')                         #篩選書庫書的連結


for a in range(3):                                                          #迴圈前3本小說原始碼
    res0 = requests.get(db[a])
    html0 = etree.HTML(res0.text)
    qian = html0.xpath('//a[@class="all-catalog"]')                         #篩選網頁中的目錄連結
    qian = qian[0].xpath('./@href')
    qians = html0.xpath('//div[@class="book-name"]')[0]
    qians = qians.text.replace('\r\n','').replace(' ','')
    print(qians)
    if os.path.exists(qians):
        pass
    else:
        os.mkdir(qians)



    res1 = requests.get(qian[0])                                              #進入小說目錄
    html1= etree.HTML(res1.text)
    for b in range(0,len(html1.xpath('//li[@class=" col-4"]/a'))):
        ml=html1.xpath('//li[@class=" col-4"]/a')[b]                       #篩選目錄的每個單章連結
        danz=ml.xpath('./@href')[0]


        res2=requests.get(danz)                                                 #小說單章
        html2=etree.HTML(res2.text)
        shum=html2.xpath('//div[@class="title_txtbox"]')[0]                     #單章題目
        shum=qians+'\\'+shum.text+'.txt'
        dz=''
        for i in range(0,len(html2.xpath('//div/p'))):                          #迴圈匯出

            dz=dz+html2.xpath('//div/p')[i].text
        f = open(shum,'w',encoding='utf-8')                           #建立txt
        f.write(dz)                                                    #內容存入

作為剛入門的小白第一次寫部落格,只上傳了程式碼。

相關文章