真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python使爬取小說觀看的方法

不懂python使爬取小說觀看的方法?其實(shí)想解決這個(gè)問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的靈山網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

python使爬取的小說更利于觀看的方法:

1、使用追加模式將文章寫入txt文本

關(guān)于文件的寫入, ‘w’ 的方式 是覆蓋寫, 沒有就創(chuàng)建, 那么我們寫小說就不需要用這個(gè), 使用
‘a(chǎn)’ 追加寫的模式, 然后添加適當(dāng)?shù)姆指舴?只有文本中添加目錄, 整個(gè)txt在手機(jī)中才會顯示出目錄的存在 ,我的實(shí)例如下: 最好加點(diǎn)文字提示, 代表這章節(jié)下載成功到總txt中 !

path = 'D://爬取小說//'
        os.chdir(path)  # 進(jìn)入這個(gè)文件夾
        with open('酒神.txt', 'a+', encoding='utf-8') as fw:
            fw.write(''.join(items['title']) + '\n\n\n' + '- ' * 40)
            fw.write(''.join(items['text']))
        print(f'{items["title"]} 下載完成!')

2、使用xpath讀取網(wǎng)頁的文章內(nèi)容

爬取小說這樣的文字量很多的情況下, 文字的處理顯得極為重要了,爬取小說不推薦使用正則re,也不推薦使用soup, 原因你獲取不了網(wǎng)頁自帶的換行符和縮進(jìn)符, 比如 \xboo 之類的, 如果你獲取不了文本自帶的這些,那么你就得自己添加,可以使用re的sub進(jìn)行適當(dāng)?shù)奶鎿Q換行,這就很麻煩,這里一定推薦使用xpath的text() 去匹配, 方便快捷,爬小說的小助手!

text = html.xpath('//div[@id="content"]/text()')

3、添加sleep函數(shù),降低爬取速度

為什么會出現(xiàn)這樣的情況,高頻發(fā)的請求網(wǎng)址,如果不是使用框架, 那么就需要設(shè)置延遲時(shí)間了。比如sleep() 或者 request 加入?yún)?shù) timeout ,不然很容易被網(wǎng)址通過請求次數(shù) 進(jìn)而識別出來 這是一個(gè)爬蟲程序, 也就是非人類操作, 那么他就可以不讓你請求,從而你就爬蟲失敗!

r = requests.get(url, headers=self.headers) 
time.sleep(0.7)

完整代碼如下:

# -*- coding :  utf-8 -*-
# @Time      :  2020/6/2  16:13
# @author    :  沙漏在下雨
# @Software  :  PyCharm
# @CSDN      :  https://me.csdn.net/qq_45906219
import requests
from lxml import etree
import os
import time
class Spider:
    def __init__(self):
        self.start_url = 'http://www.biquge.info/11_11079/'
        self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                                      'AppleWebKit/537.36 (KHTML, like Gecko)'
                                      ' Chrome/81.0.4044.129 Safari/537.36',
                        'Host': 'www.biquge.info',
                        'Referer': 'http://www.biquge.info/11_11079/5216668.html',
                        'Cookie': 'clickbids=11079; Hm_lvt_6dfe3c8f195b43b8e667a2a2e5936122=1591085546;'
                                  ' Hm_lvt_c979821d0eeb958aa7201d31a6991f34=1591085539,1591085553,1591085815; '
                                  'Hm_lpvt_6dfe3c8f195b43b8e667a2a2e5936122=1591087376; '
                                  'Hm_lpvt_c979821d0eeb958aa7201d31a6991f34=1591087377'}
    def get_page(self):
        """
        獲得每一章節(jié)的網(wǎng)址
        yield 回去
        """
        r = requests.get(self.start_url, headers=self.headers)
        if r.status_code == 200:
            r.encoding = r.apparent_encoding
            html = etree.HTML(r.text)
            page_url = html.xpath('//div[@id="list"]/dl/dd/a/@href')
            for url in page_url[222:]:
                url = f'http://www.biquge.info/11_11079/{url}'
                yield url
    def save_text(self, items):
        """
        根據(jù)章節(jié)下載'
        """
        path = 'D://爬取小說//'
        os.chdir(path)  # 進(jìn)入這個(gè)文件夾
        with open('酒神.txt', 'a+', encoding='utf-8') as fw:
            fw.write(''.join(items['title']) + '\n\n\n' + '- ' * 40)
            fw.write(''.join(items['text']))
        print(f'{items["title"]} 下載完成!')
    def parse_page_error(self, r):
        # 為處理異常:
        r.encoding = r.apparent_encoding
        html = etree.HTML(r.text)
        title = html.xpath('//div[@class="bookname"]/h2/text()')
        text = html.xpath('//div[@id="content"]/text()')
        items = {}
        items['title'] = title
        items['text'] = text
        self.save_text(items)
    def parse_page(self):
        """
        分析每一章節(jié)  然后下載, 次數(shù)過快 容易炸ip 三次保底請求 !
        """
        for url in self.get_page():
            r = requests.get(url, headers=self.headers)
            time.sleep(0.7)
            if r.status_code == 200:
                self.parse_page_error(r)
            else:
                print(f'該 {url}未下載成功! 再次請求')
                rr = requests.get(url, headers=self.headers)
                if rr.status_code == 200:
                    self.parse_page_error(rr)
                else:
                    print("第三次請求!")
                    rrr = requests.get(url, headers=self.headers)
                    self.parse_page_error(rrr)
        print('全部下載完成!')
jiushen = Spider()
jiushen.parse_page()

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python使爬取小說觀看的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!


網(wǎng)頁標(biāo)題:python使爬取小說觀看的方法
文章URL:http://weahome.cn/article/pdecpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部