Heim > Fragen und Antworten > Hauptteil
Wie im Bild gezeigt, ist es sehr mühsam, Bilder einzeln im Netzwerk anzuzeigen und zu laden, um sie zu speichern. Gibt es hier eine Möglichkeit, einen Crawler zu schreiben, der die Bilder stapelweise erfasst?
仅有的幸福2017-06-28 09:27:48
这个需求, 如果你会爬虫其实很简单, 不外乎几个步骤:
首页或者有图片的页面, 通过正则或者其他框架, 获取图片的url
通过requests
库或者urllib
库, 访问上面图片url的地址
以二进制的形式, 写入本地硬盘
参考代码:
import re, requests
r = requests.get("http://...页面地址..")
p = re.compile(r'相应的正则表达式匹配')
image = p.findall(r.text)[0] # 通过正则获取所有图片的url
ir = requests.get(image) # 访问图片的地址
sz = open('logo.jpg', 'wb').write(ir.content) # 将其内容写入本地
print('logo.jpg', sz,'bytes')
更多详情, 可以参考学习requests
官方文档: requests文档
女神的闺蜜爱上我2017-06-28 09:27:48
可以的,
爬虫五个部分:
调度程序
url去重
下载器
网页解析
数据存储
对于下载图片的思路是:
获取图片所在网页内容,解析img标签,得到图片地址,然后便利图片网址,下载每张图片,将下载过的图片地址保存在布隆过滤器中,避免重复下载,每次下载一张图片时,通过网址检查是否下载过,当图片下载到本地后,可以将图片路径保存在数据库中,图片文件保存在文件夹中,或者直接将图片保存在数据库中。
python使用request+beautifulsoup4
java使用jsoup