首页  >  问答  >  正文

python - 怎么用爬虫批量抓取网页中的图片?

如图,通过network查看加载图片,要一张一张右键保存很麻烦,有没有办法写个爬虫批量抓取这里的图片》?

给我你的怀抱给我你的怀抱2694 天前1164

全部回复(3)我来回复

  • 仅有的幸福

    仅有的幸福2017-06-28 09:27:48

    这个需求, 如果你会爬虫其实很简单, 不外乎几个步骤:

    1. 首页或者有图片的页面, 通过正则或者其他框架, 获取图片的url

    2. 通过requests库或者urllib库, 访问上面图片url的地址

    3. 以二进制的形式, 写入本地硬盘

    参考代码:

    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文档

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-28 09:27:48

    可以的,
    爬虫五个部分:
    调度程序
    url去重
    下载器
    网页解析
    数据存储
    对于下载图片的思路是:
    获取图片所在网页内容,解析img标签,得到图片地址,然后便利图片网址,下载每张图片,将下载过的图片地址保存在布隆过滤器中,避免重复下载,每次下载一张图片时,通过网址检查是否下载过,当图片下载到本地后,可以将图片路径保存在数据库中,图片文件保存在文件夹中,或者直接将图片保存在数据库中。
    python使用request+beautifulsoup4
    java使用jsoup

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-28 09:27:48

    如果多个网站或者一个网站需要爬到很深的情况下,楼上的方式直接递归或者深度遍历就OK

    回复
    0
  • 取消回复