requests + BeautifulSoup + urllib 爬取并下载网站图片到本地(一)

这一篇主要写使用 requests + BeautifulSoup + urllib 下载图片保存到本地,下一篇写下载整站详情页的图片保存到本地(敬请期待)

爬取网络上的数据其实很简单,只要掌握基本逻辑就好了。

  1. 找到网站;
  2. 分析所需数据的 HTML 节点;
  3. 把数据下载到本地或者存储到数据库

那好,废话不多说,开始吧!


准备工作

  • 开发环境:Windows,Pycharm,Request,BeautifulSoup,urllib
  • 需要一定的 Python 爬虫、HTML 基础

开始动身

  • 明确目标
    本次要爬取的网站是 帅啊(点开看一下,有惊喜哦~[坏笑].png)
    我们需要把网站第一页所有 item 的图片下载到本地

  • 制作爬虫

    1. 由于获取下来的 html 编码格式不对,所以要指定编码格式为 utf-8
    2. 获取页面中每个 item 的图片标签
    3. 循环获取标签的图片链接(src)和图片名(alt)
    4. 下载图片到本地
from bs4 import BeautifulSoup
import requests
import os
import urllib.request
import time

headers = {
    "Cookie": "UM_distinctid=16685e0279d3e0-06f34603dfa898-36664c08-1fa400-16685e0279e133; bdshare_firstime=1539844405694; gsScrollPos-1702681410=; CNZZDATA1254092508=1744643453-1539842703-%7C1539929860; _d_id=0ba0365838c8f6569af46a1e638d05",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
}
path = "D://images/"

def get_links(url):
    wb_data = requests.get(url, headers=headers)  # 加入 headers,避免被网站的反爬机制认为是蜘蛛
    wb_data.encoding = "utf-8"
    soup = BeautifulSoup(wb_data.text, 'lxml')

    links = soup.select(".item-img img")
    if not os.path.exists(path):  # 判断该文件夹是否存在,不存在则创建
        os.mkdir(path)
    for link in links:
        time.sleep(1)  # 暂停一秒,避免访问过快被反爬机制认为是蜘蛛
        img = link.get("src")
        img_name = link.get("alt")
        urllib.request.urlretrieve(img, path + img_name + ".jpg")
        print("-------- downloading ---------")

    print("------ download done -------")

if __name__ == "__main__":

    get_links("http://www.shuaia.net/index.html")
  • 开始爬取



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 那条胆敢纵身一跃的鱼: 外面的世界很美,有青草,有阳光,有落叶,有余辉,有溪流,有林木…… 或许你在飞跃你的世界时...
    孟小苒阅读 591评论 0 2
  • 加油
    夏了西瓜阅读 180评论 0 0
  • 2017年7月26日凌晨一点四十分,从你响亮的啼哭声响起,我知道我终于把你生下来了,我很想洗个热水澡好好的...
    玥尔成诗阅读 320评论 0 0

友情链接更多精彩内容