Python-BS4学习记录(BeautifulSoup)

学习目标:

学习BeautifulSoup 进行数据爬取

总的来说就是:
**

创建对象–使用对象–分析数据–处理数据–保存数据

**

学习内容:

BS4主要方法讲解与实例演示

import requests
from bs4 import BeautifulSoup
import time
#BS4学习
#首先创建一个soup对象
# soup = BeautifulSoup(page.text,"html.parse")#page.text--页面数据  html.parse--页面类型
#利用soup对象进行匹配数据
# tag = soup.find("div",class_ = "xxx")#"div",class_ = "xxx"----"CSS选择器表达式"


#主网址
domain = "https://www.umeitu.com/weimeitupian/yijingtupian/"
#请求头,防止被识别成茶壶
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47"
}
#请求1,获取到主网址的html数据
resp1 = requests.get(url=domain,headers=headers)
resp1.encoding = 'utf-8' #查看页面是utf_8,所以做一个编码,防止乱码
result1 = resp1.text  #将主页面的数据存给result1
# print(result1)
#把源代码交给BS4
main_page = BeautifulSoup(result1,'html.parser')
alist = main_page.find("ul",class_ = "pic-list after").find_all("a")  #获取到主页面我们需要的图片的地址。是一个列表
# print(alist)
for a in alist: #循环列表,得到每一张图片的地址
    # print(a.get("href"))
    href = domain.replace('/weimeitupian/yijingtupian/','') + a.get("href")
    # print(href)
    #再来一次,获取到每个子页面的响应数据
    resp2 = requests.get(url=href,headers=headers)
    result2 = resp2.text
    child_page = BeautifulSoup(result2,'html.parser')
    child_alist = child_page.find("section",class_ = "img-content")
    # print(child_alist)
    #获取到每一张图片的地址
    child_img_src = child_alist.find("img").get("src")
    # print(child_img_src)
    #请求每一张图片的地址,进行下载
    child_img_resp = requests.get(child_img_src)
    #把地址的后部分变成图片名,防止重复
    child_img_name = child_img_src.split("/")[-1]
    # print(type(str(child_img_name)))
    #写入文件夹里面
    with open("img/" + child_img_name,mode="wb") as f:
        f.write(child_img_resp.content)
    print("over!!!",str(child_img_name))
    time.sleep(1)
print("all over!!!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值