Python爬取unsplash

本片博客用来爬取unsplash里面的图片,主要用到requests库和json库, os库作为辅助,编译软件使用pycharm.
一、

打开unsplash分析网页

Refused
很容易分析这个网页时动态网页,而不是静态网页?为什么呢,因为这个网页所有的图片不是一下子出来,他是一组一组的弹出来的,属于典型的动态网页,此外你也可以找找有没有你所要的图片的连接。你会发现根本找不到连接,那么怎么搞,莫慌!!!山人自有招。O(∩_∩)O哈哈~

二、查找图片的链接

按一下F12键,然后点Network,出来Network之后,点击XHR键(这个键属于Network的子文件),你会看到一下界面,
Refused
然后重点来了,记一下要考的 ,向下滑动页面,你就会发现页面多了点东西,多啥了你自己瞅啊,瞅我干啥,瞅自己的网页。
Refused
你随便点击一个,你会发现一个列表,仔细寻找列表里面的东西,发没发现网址,如果没发现,那么只能说你只适合插秧,对了别踩苗。
Refused
你在仔细找找,看没看见raw"https://images.unsplash.com/photo-1551877521-23bf8ef34f10?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9",这个东西你打开看看,呀,amazing。
Refused
图片大概知道在哪了, 那么开始盘它了。

三、一组图片下载

  怎么下载一组图片呢?
 还是先回到咱们一开始找到连接的位置

Refused
右键点击photo…会出现一个cut键,点击cut键,然后点击第一个。

import requests
import os
from bs4 import BeautifulSoup
import re
import bs4
import json

url = "https://unsplash.com/napi/photos?page=5&per_page=12"
def getHTML(url):
    r = requests.get(url)
    jd = json.loads(r.text)//强制转化为字典格式
    list = []
    for i in jd:
        t = i['urls']["raw"]
        list.append(t)
    root = "D://Pic//"
    count = 1
    for i in list:
        print(i)
        path = root + str(count) + '.jpg'
        count = count + 1
        if not os.path.exists(root):
            os.mkdir(root)
        if not os.path.exists(path):
            r = requests.get(i)
            with open(path, 'wb') as f:
                f.write(r.content)
getHTML(url)

四、多组数据爬取

再复制一组数据,对比两组数据的区别
Refused
发现基本上一样就是page=的数值一样,然后通过这个特点咱们爬取多组数据,爬取3组吧,因为这个网站比较慢,我也不知道因为什么。

import requests
import os
from bs4 import BeautifulSoup
import re
import bs4
import json
url = "https://unsplash.com/napi/photos?page="
base = "&per_page=12"
def getHTML(url):
    r = requests.get(url)
    jd = json.loads(r.text)
    list = []
    for i in jd:
        t = i['urls']["raw"]
        list.append(t)
    root = "D://Pic//"
    global count
    for i in list:
        print(i)
        path = root + str(count) + '.jpg'
        count = count + 1
        if not os.path.exists(root):
            os.mkdir(root)
        if not os.path.exists(path):
            r = requests.get(i)

            with open(path, 'wb') as f:
                f.write(r.content)
count = 0
for i in range(1,3):
    u = url + str(i)+base
    print(u)
    getHTML(u)

结果:
Refused

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值