作者s4028600 (佑)
看板Python
标题[问题] 爬取图文成档案
时间Wed Dec 25 00:28:11 2019
爬文都只有只爬取图片或文字
用requests和bs4爬取文字或图片是会了
但是想要爬取成图文混排
所以txt是没办法了
目前能够图文混排的格式打算用world或epub
但是不知道要怎麽爬取图文
用bs4只会跑出图片的连结
没有头绪了...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.224.161.174 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1577204893.A.478.html
1F:→ Hsins: 能够爬取连结就能够对网际网路资源进行存取,再透过相关的12/25 00:59
2F:→ Hsins: 套件操作 word 或 epub。关键字可以自己去搜,作法有很多12/25 01:00
3F:→ Hsins: ,实际上要混排你也可以使用 html。两年前你可以是小白,但12/25 01:01
4F:→ Hsins: 不应该这麽久过去了,还不能够自己找答案呀。12/25 01:02
我又不是很常用这功能...
虽然是比两年前会很多
不过爬虫是最近才尝试的东西
找到的答案又都是单纯爬图或爬文
html...
尝试还是只能爬图或文
写不出一起爬的
5F:→ junwh: 用Markdown如何12/25 02:35
这是?
轻量级标记式语言?
※ 编辑: s4028600 (125.224.161.174 台湾), 12/25/2019 05:59:01
6F:→ dennisxkimo: 选个可图文并茂的档案格式 爬到的内容写出入该格式12/25 09:36
7F:→ dennisxkimo: markdown(.md)或html都可 爬到资料怎麽使用 自由发挥12/25 09:38
8F:→ 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
9F:→ Hsins: 就算不是同一个功能,你两年来似乎也没有为了让自己更理解12/25 12:40
10F:→ Hsins: 这个工具去把英文念好不是吗?12/25 12:41
11F:→ Hsins: 当你要做的功能越趋复杂(对於你而言),你没有让自己有足12/25 12:41
12F:→ 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
13F:→ kobe8112: world...? 是指办公室软体word吗?12/25 16:54
14F:→ s4028600: 对 我现在才发现多一个l12/25 19:00
15F:→ dennisxkimo: 你能爬资料 找到 文字 与图片的连结 从来没想过可以12/25 19:29
16F:→ dennisxkimo: 收集起来 再自己写个程式 把收集来的 写成一个档案?12/25 19:30
17F:→ dennisxkimo: 看回应的code只接受现成的function套上而已12/25 19:31
18F:→ dennisxkimo: 这样能力会被受限 永远只能玩门口的东西 12/25 19:31
有想过也试过喔
最主要是我还做不到批量改html里的连结
所以才难以合并
不过刚找到方法了 还很简陋就是了
19F:→ s860134: 唉 建议学点 copy paste 外的东西 12/25 19:46
我的确还是copy paste的程度没错
不过比以前只能直接用 现在会自己改了
虽然进度缓慢...
20F:→ vi000246: 拆解问题是解决问题的开始 爬到图片网址 把图载下来 12/26 00:27
好吧
研究epub的结构後觉得我的确在一步登天
还是从Hsins的建议从html开始
不过我的确不太会从细部问题开始
多是大问题开始走一步算一步...
图已经会载了
21F:→ 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
22F:→ jiyu520: 加油 12/26 14:57