看板 Python 關於我們 聯絡資訊
爬文都只有只爬取圖片或文字 用requests和bs4爬取文字或圖片是會了 但是想要爬取成圖文混排 所以txt是沒辦法了 目前能夠圖文混排的格式打算用world或epub 但是不知道要怎麼爬取圖文 用bs4只會跑出圖片的連結 沒有頭緒了... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.224.161.174 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1577204893.A.478.html
Hsins: 能夠爬取連結就能夠對網際網路資源進行存取,再透過相關的12/25 00:59
Hsins: 套件操作 word 或 epub。關鍵字可以自己去搜,作法有很多12/25 01:00
Hsins: ,實際上要混排你也可以使用 html。兩年前你可以是小白,但12/25 01:01
Hsins: 不應該這麼久過去了,還不能夠自己找答案呀。12/25 01:02
我又不是很常用這功能... 雖然是比兩年前會很多 不過爬蟲是最近才嘗試的東西 找到的答案又都是單純爬圖或爬文 html... 嘗試還是只能爬圖或文 寫不出一起爬的
junwh: 用Markdown如何12/25 02:35
這是? 輕量級標記式語言? ※ 編輯: s4028600 (125.224.161.174 臺灣), 12/25/2019 05:59:01
dennisxkimo: 選個可圖文並茂的檔案格式 爬到的內容寫出入該格式12/25 09:36
dennisxkimo: markdown(.md)或html都可 爬到資料怎麼使用 自由發揮12/25 09:38
dennisxkimo: 載圖嵌入路徑 還是插連結 是看有沒有離線保存需要12/25 09:40
import requests from bs4 import BeautifulSoup import os url = 'https://ericjhang.github.io/archives/ad5450f3.html' html = requests.get(url).content with open('123.html','wb')as f: f.write(html) f.close() 這樣爬出來圖是叉叉 怎麼鑲嵌比較好 ※ 編輯: s4028600 (125.224.161.174 臺灣), 12/25/2019 11:08:54
Hsins: 就算不是同一個功能,你兩年來似乎也沒有為了讓自己更理解12/25 12:40
Hsins: 這個工具去把英文念好不是嗎?12/25 12:41
Hsins: 當你要做的功能越趨複雜(對於你而言),你沒有讓自己有足12/25 12:41
Hsins: 夠的能力聽懂別人要表達什麼的時候,問再多都沒用。12/25 12:42
兩年前也才一篇文章 而且還是文件處理 中間並沒有用過好嗎? 而且就是不懂才要問 就算聽不懂也可以抽絲剝繭從回答中找到更多東西 你的html建議就很有用 的確我還摸索不出來 不過比你指責我英文不好要有用多了 ※ 編輯: s4028600 (175.183.44.67 臺灣), 12/25/2019 14:14:52 https://blog.csdn.net/he_string/article/details/78574198 根據這篇文章可以把圖放入world 可是只能放到最後面... ※ 編輯: s4028600 (175.183.44.67 臺灣), 12/25/2019 14:18:34
kobe8112: world...? 是指辦公室軟體word嗎?12/25 16:54
s4028600: 對 我現在才發現多一個l12/25 19:00
dennisxkimo: 你能爬資料 找到 文字 與圖片的連結 從來沒想過可以12/25 19:29
dennisxkimo: 收集起來 再自己寫個程式 把收集來的 寫成一個檔案?12/25 19:30
dennisxkimo: 看回應的code只接受現成的function套上而已12/25 19:31
dennisxkimo: 這樣能力會被受限 永遠只能玩門口的東西 12/25 19:31
有想過也試過喔 最主要是我還做不到批量改html裡的連結 所以才難以合併 不過剛找到方法了 還很簡陋就是了
s860134: 唉 建議學點 copy paste 外的東西 12/25 19:46
我的確還是copy paste的程度沒錯 不過比以前只能直接用 現在會自己改了 雖然進度緩慢...
vi000246: 拆解問題是解決問題的開始 爬到圖片網址 把圖載下來 12/26 00:27
好吧 研究epub的結構後覺得我的確在一步登天 還是從Hsins的建議從html開始 不過我的確不太會從細部問題開始 多是大問題開始走一步算一步... 圖已經會載了
vi000246: 或是取得圖片stream 再隨便你要存成什麼排版 12/26 00:28
是指在print之前的排版嗎 為什麼你們留言我app都沒顯示... 總之找到一個算可行方法 但是很仰賴calibre import zipfile import requests from bs4 import BeautifulSoup a=1 url = '' res=requests.get(url) res.encoding='gbk' soup=BeautifulSoup(res.text,'html.parser') html=soup.select('#contentmain')[0].prettify() outZip=zipfile.ZipFile('test.zip', mode='w', compression=zipfile.ZIP_DEFLATED) #, compresslevel=9) for img in soup.select('#contentmain'): for src in img.select('img'): filename='images/%02d.jpg'%a print(src['src']) html=html.replace(src['src'],filename) imgUrl=src['src'] imgResponse=requests.get(imgUrl) outZip.writestr(filename, imgResponse.content) a+=1 print(html) htmlContent=html outZip.writestr('index.html', htmlContent) outZip.close() 然後再用calibre轉檔 ※ 編輯: s4028600 (36.232.106.188 臺灣), 12/26/2019 13:47:45
jiyu520: 加油 12/26 14:57