python爬虫实战(二)——优美图库(bs4)

1 . 前言

这是一个正经的代码和正经的平台!!!
这次爬图基于beautifulSoup4来实现的

2 . 代码

# 1. 拿到主页面的源代码,提取子页面链接的位置,href
# 2. 通过herf拿到子页面的内容,从子页面中找到图片的下载地址 img -> src
# 3. 下载图片

from os import write
import requests
from bs4 import BeautifulSoup
import time

url = "https://www.umei.cc/p/gaoqing/"
res = requests.get(url)
res.encoding = 'utf-8' # 处理乱码
# print(res)
# print(res.text)
# 把解析教给BeautifulSoup
main_page = BeautifulSoup(res.text) # 将源码交给bs4处理
alist = main_page.find("div", class_ = "TypeList").find_all("a")
#print(alist)
for a in alist:
    href = "https://www.umei.cc" + a.get("href") # 通过get拿到属性的值

# 拿到子页面的源代码
    child_page_res = requests.get(href)
    child_page_res.encoding = 'utf-8'
    child_page_text = child_page_res.text
# 从子页面中拿到图片的下载途径
    child_page = BeautifulSoup(child_page_text)
    p = child_page.find("div", class_ = "ImageBody")
    img = p.find("img")
    src = img.get("src")
# 下载图片
    img_res = requests.get(src)
    #img_res.content # 这里拿到的是字节
    img_name = src.split("/")[-1] # 拿到URL中以"/"分割的后面的内容
    with open("img/"+ img_name,"wb") as f: # mode = 'wb'用于写入图片
        f.write(img_res.content) # 图片内容写入到文件
    
    print("over!!",img_name)
    time.sleep(1) # 防止服务器干掉你,睡一秒钟
print("all_over!!")

3 . 注意点

  1. python基础
    img_name = src.split("/")[-1]
    这句代码是指以“/”为分界线,将其后面的内容提取出来赋给img_name
  2. time库
    这次发现了不用time库,不停访问的话,服务器很有可能给你个403,把你干掉,所以为了保险起见还是每次loop之前小睡一会儿好了。

4 . 最后

目前为止已经学会了re和bs4,接下来就是学习xpath了。
冲冲冲

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WFForstar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值