Python:50行代码实现下载小说,图片章节可自动识别转文字保存...
最近有小伙伴吐槽,有些小說下載下來后發(fā)現(xiàn)是圖片章節(jié),白下載了,問我怎么處理?
這還不簡單,加個(gè)文字識(shí)別不就好了。
所以今天咱們來展示一下怎么將小說爬下來,再識(shí)別成文字保存。
話不多說,開搞!
一、準(zhǔn)備工作
1、環(huán)境使用
Python 3.8 Pycharm2、模塊使用
requests >>> 數(shù)據(jù)請(qǐng)求模塊 parsel >>> 數(shù)據(jù)解析模塊 re 正則表達(dá)式requests 是第三方模塊,需要手動(dòng)安裝,在CMD里面進(jìn)行安裝 輸入安裝命令 pip install 模塊名。如果平時(shí)下載模塊慢,可以切換國內(nèi)鏡像源。
3、模塊安裝問題
安裝python第三方模塊最快捷的有兩種方法
第一種: win + R 輸入 cmd 點(diǎn)擊確定,輸入安裝命令 pip install 模塊名 (pip install requests) 回車。
第二種: 在pycharm中點(diǎn)擊Terminal(終端) 輸入安裝命令
安裝失敗原因
失敗一
pip 不是內(nèi)部命令
解決方法: 設(shè)置環(huán)境變量
失敗二
出現(xiàn)大量報(bào)紅 (read time out)
解決方法: 因?yàn)槭蔷W(wǎng)絡(luò)鏈接超時(shí), 需要切換鏡像源。
清華:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:https://mirrors.aliyun.com/pypi/simple/ 中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/ 華中理工大學(xué):https://pypi.hustunique.com/ 山東理工大學(xué):https://pypi.sdutlinux.org/ 豆瓣:https://pypi.douban.com/simple/例如:pip install -i https://pypi.doubanio.com/simple/ 模塊名
失敗三
cmd里面顯示已經(jīng)安裝過了, 或者安裝成功了, 但是在pycharm里面還是無法導(dǎo)入。
解決方法: 可能安裝了多個(gè)python版本 (anaconda 或者 python 安裝一個(gè)即可) 卸載一個(gè)就好,或者你pycharm里面python解釋器沒有設(shè)置好。
4、如何配置pycharm里面的python解釋器?
5、pycharm如何安裝插件?
二、案例思路/基本流程
1、分析我們想要數(shù)據(jù)內(nèi)容來自于哪里
F12 開發(fā)者工具進(jìn)行抓包分析,打開 F12 或者 鼠標(biāo)右鍵點(diǎn)擊檢查 刷新網(wǎng)頁,點(diǎn)擊搜索按鈕,輸入搜索內(nèi)容,點(diǎn)擊回車找到數(shù)據(jù)包。
請(qǐng)求 https://b.faloo.com/631781_1.html 這個(gè)網(wǎng)址, 就可以得到我們想要小說內(nèi)容。
2、代碼實(shí)現(xiàn)步驟
- 發(fā)送請(qǐng)求, 模擬瀏覽器對(duì)于 https://b.faloo.com/631781_1.html 發(fā)送請(qǐng)求
- 獲取數(shù)據(jù), 獲取服務(wù)器返回響應(yīng)數(shù)據(jù) —> 開發(fā)者工具里面response
- 解析數(shù)據(jù),提取我們想要數(shù)據(jù)內(nèi)容,小說章節(jié)名字
- 保存數(shù)據(jù),保存本地文件。
3、代碼展示
模塊導(dǎo)入
# 導(dǎo)入數(shù)據(jù)請(qǐng)求模塊 import requests # 導(dǎo)入數(shù)據(jù)解析模塊 import parsel # 導(dǎo)入獲取VIP章節(jié)代碼 import Vip # 導(dǎo)入圖片文字識(shí)別代碼 import spot # 導(dǎo)入os模塊 import os發(fā)送請(qǐng)求
模擬瀏覽器對(duì)于 https://b.faloo.com/631781_1.html 發(fā)送請(qǐng)求
為什么使用的是 requests.get ?
根據(jù)開發(fā)者工具里面所看到請(qǐng)求方式, 瀏覽器是什么請(qǐng)求方式, 我們代碼當(dāng)中就使用什么請(qǐng)求方式
爬蟲代碼要偽裝成瀏覽器發(fā)送請(qǐng)求
添加headers請(qǐng)求,你不加請(qǐng)求頭, 不偽裝, 你就會(huì)被識(shí)別出來你是爬蟲程序, 從而得到你想要的內(nèi)容,被反爬了。
獲取數(shù)據(jù)
獲取服務(wù)器返回響應(yīng)數(shù)據(jù) —> 開發(fā)者工具里面 response 響應(yīng)文本數(shù)據(jù) print(response.text)
for index in href:# 確定請(qǐng)求鏈接url = f'https:{index}'# 請(qǐng)求頭參數(shù) ---> 在開發(fā)者工具復(fù)制粘貼的headers = {# User-Agent 表示瀏覽器基本身份信息'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}# 發(fā)送請(qǐng)求 ---> <Response [200]> 響應(yīng)對(duì)象response = requests.get(url=url, headers=headers)解析數(shù)據(jù)
提取我們想要數(shù)據(jù)內(nèi)容, 小說 小說章節(jié)名字
撤回 ctrl + z
得到的 response.text 響應(yīng)文本數(shù)據(jù) 字符串?dāng)?shù)據(jù)類型 需要轉(zhuǎn)換一下數(shù)據(jù)類型
解析方法: css選擇器 —> 根據(jù)標(biāo)簽屬性內(nèi)容提取數(shù)據(jù)
css語法不會(huì), 沒有關(guān)系, 只要你會(huì) ctrl + c / v
保存數(shù)據(jù), 保存本地文件
# 打開文件 進(jìn)行保存with open(name + '.txt', mode='a', encoding='utf-8') as f:# 寫入數(shù)據(jù)f.write(title)f.write('\n')f.write(content)f.write('\n')print('成功保存: ',title)else:img_content = Vip.get_vip_img(link=url)with open('img\\' + title + '.png', mode='wb') as img_f:img_f.write(img_content)print('成功保存: ',title)圖片文字識(shí)別,返回文字內(nèi)容
files = os.listdir('img\\') for file in files:img_file = 'img\\' + filenovel_title = file.replace('.png', '')novel_content = spot.get_vip_content(file=img_file)with open(name + '.txt', mode='a', encoding='utf-8') as f:# 寫入數(shù)據(jù)f.write(novel_title)f.write('\n')f.write(novel_content)f.write('\n')好了,今天的分享就到這里,全部代碼下方名片獲取。
最后推薦一套Python教程, 涵蓋了常見的大部分案例實(shí)戰(zhàn),非常詳細(xì)~
代碼總是學(xué)完就忘記?100個(gè)爬蟲實(shí)戰(zhàn)項(xiàng)目!讓你沉迷學(xué)習(xí)丨學(xué)以致用丨下一個(gè)Python大神就是你!
總結(jié)
以上是生活随笔為你收集整理的Python:50行代码实现下载小说,图片章节可自动识别转文字保存...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Moebius集群
- 下一篇: 1430. Crime and Puni