IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 爬虫中的恋爱学心理你get了吗?一杯星巴克温暖你的整个冬天——爬虫bs4解析从入门到入坑 -> 正文阅读

[Python知识库]爬虫中的恋爱学心理你get了吗?一杯星巴克温暖你的整个冬天——爬虫bs4解析从入门到入坑

在这里插入图片描述

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照😜😜😜
🏅🏅🏅CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟???

前言:越来越发现学爬虫就像找女朋友一样,慢慢来,找到合适的机会才能拿下!让我们来先把爬虫拿下吧!

一、拿下她的必要准备

1.构建页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <ul>
            <li id="l1">张三</li>
            <li id="l2">李四</li>
            <li>王五</li>
            <a href="" id=""class="a1">尚硅谷</a>
            <span>嘿嘿嘿</span>
        </ul>
    </div>

    <a href="" title="a2">百度</a>
    <div id="d1">
            哈哈哈很牛哇
    </div>
    <p id="p1" class="p1">哈哈哈哈嘿嘿嘿</p>
</body>
</html>

在这里插入图片描述

2.知识储备:

# -*-coding:utf-8 -*-
# @Author:到点了,心疼徐哥哥
# 奥利给干!!!
from bs4 import BeautifulSoup

# 通过解析本地文件 来将bs4基础语法进行讲解
# 默认打开的文件的编码格式为gbk 打开文件时需要指定编码
soup = BeautifulSoup(open('bs4基本使用.html',encoding='utf-8'),'lxml')
# print(soup)
# 根据标签名查找节点
# 找到的是第一个符合条件的数据
# print(soup.a)
# 获取标签的属性和属性值
# print(soup.a.attrs)

# bs4的一些函数
# (1)find
# 返回的是第一个符合条件的数据
# print(soup.find('a'))
# 根据title的值来找到对应的
# print(soup.find('a',title="a2"))  # <a href="" title="a2">百度</a>
# print(soup.find('a',class="a1"))  #  class是关键字,不能用。相当于古代皇帝叫这个名字,你不能用
# 根据class的值来找到对应的标签对象,注意的是class需要添加下划线
# print(soup.find('a',class_="a1"))  # <a class="a1" href="" id="">尚硅谷</a>

# (2)find_all # 返回的是一个列表,并且返回所有的a标签
# print(soup.find_all('a'))# [<a class="a1" href="" id="">尚硅谷</a>, <a href="" title="a2">百度</a>]
# 如果想要获取的是多个标签的数据,那么需要在find_all的参数中添加的是列表的数据。
# print(soup.find_all(['a','span']))  # [<a class="a1" href="" id="">尚硅谷</a>, <span>嘿嘿嘿</span>, <a href="" title="a2">百度</a>]
# limit查找前几个数据
# print(soup.find_all('li',limit=2))  # [<li>张三</li>, <li>李四</li>]

# (3)select(推荐)
# select方法返回列表和多个数据
# print(soup.select('a'))  # [<a class="a1" href="" id="">尚硅谷</a>, <a href="" title="a2">百度</a>]
# 可以通过.代表class 我们把这种操作叫做类选择器
# print(soup.select('.a1'))  # [<a class="a1" href="" id="">尚硅谷</a>]
# print(soup.select('#l1'))  # [<li id="l1">张三</li>]

# 属性选择器
# 查找li标签中有id的标签
# print(soup.select('li[id]'))  # [<li id="l1">张三</li>, <li id="l2">李四</li>]
# 查找到li标签中id为l2的标签
# print(soup.select('li[id="l2"]'))  # [<li id="l2">李四</li>]

# 层级选择器
# 后代选择器
# 找到的是div下面的li
# print(soup.select('div li'))  # [<li id="l1">张三</li>, <li id="l2">李四</li>, <li>王五</li>]

# 子代选择器
# 某标签的第一级子标签
# 注意:很多的计算机编程语言中。如果不加空格不会输出内容 但是bs4中 不会报错 会显示内容
# print(soup.select('div > ul > li'))  # [<li id="l1">张三</li>, <li id="l2">李四</li>, <li>王五</li>]

# 找到a标签和li标签
# print(soup.select('a,li'))  # [<li id="l1">张三</li>, <li id="l2">李四</li>, <li>王五</li>, <a class="a1" href="" id="">尚硅谷</a>, <a href="" title="a2">百度</a>]

# 节点信息
# 获取节点内容
# obj = soup.select('#d1')[0]
# 如果标签对象中 只有内容 那么string和get_text()都可以使用
# 如果标签对象中 除了内容还有标签 那么string就获取不到数据 而get_text()是可以获取数据
# 我们一般情况下 推荐使用get_text()
# print(obj.string)
# print(obj.get_text())

# 节点属性
# obj = soup.select('#p1')[0]
# name是标签的名字
# print(obj.name)
# 将属性值作为一个字典返回
# print(obj.attrs)

# 获取节点的属性
obj = soup.select('#p1')[0]
print(obj.attrs.get('class'))

二、冬天的第一杯星巴克送给你!

1.开启寻她之路

首先,进入星巴克官网:星巴克,然后进入主页的菜单界面,找到星巴克的一些种类!
在这里插入图片描述

2.找到我喜欢的那个她

单击右键进行检查然后刷新界面:
在这里插入图片描述
在解析的网络模块数据中,我们看到了menu这个东西,我深深地被她吸引了,所以说我打算试一试,看看到底是啥吸引了我!
在她的预览中心,我们可以看到,有很多不同种类的咖啡:
在这里插入图片描述
然后在标头中找到我们需要的接口,来对她进行更深一步的了解:
在这里插入图片描述

3.更加深入的了解她的内心

1.尝试直接进入,看看她是否对我有防备

通过给定的接口直接进入:

import urllib.request
url = 'https://www.starbucks.com.cn/menu/'

response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
print(content)

得到我们的数据:
在这里插入图片描述
点击ctrl+F搜索一下之前页面上的第一杯奶茶:阿馥奇朵看看有没有:
我们可以看到找到了!
在这里插入图片描述

2.更加一步解析她的内心

对她大概有了一个了解之后,我们要深入到她的各个品性中去,我们她的每一个品性进行深入了解!
在这里插入图片描述
进一步分析,我们可以获取各类咖啡的不同解析位置:
在这里插入图片描述
这些标签里面的的小标签分别代表不同类型咖啡里面的不同名称。
进一步使用我的Xpath获取数据具体内容:
xpath不懂的同学自觉看:??1024不孤单!??Xpath爬虫——你最忠实的伴侣:老规矩给我一分钟,万字教你入手Xpath!?
在这里插入图片描述
获取具体内容:
在这里插入图片描述

4.初步打开心扉

按照我们刚才的步骤,使用bs4整理一下我们的思路代码:

import urllib.request
url = 'https://www.starbucks.com.cn/menu/'

response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
# print(content)
from bs4 import BeautifulSoup
soup = BeautifulSoup(content,'lxml')
# //ul[@class="grid padded-3 product"]//strong/text()
name_list = soup.select('ul[class="grid padded-3 product"] strong')
print(name_list)

得到:
在这里插入图片描述

5.分析完毕,直接拿下!!!

import urllib.request
url = 'https://www.starbucks.com.cn/menu/'

response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
# print(content)
from bs4 import BeautifulSoup
soup = BeautifulSoup(content,'lxml')
# //ul[@class="grid padded-3 product"]//strong/text()
name_list = soup.select('ul[class="grid padded-3 product"] strong')
# print(name_list)
for name in name_list:
    print(name.string)

获取其中的字符串:

for name in name_list:
    print(name.string)
    # 或者
    print(name.get_text())

在这里插入图片描述

??往期文章推荐??:

还看不懂Python OpenCV?不,我不允许!隔壁大爷都说看得懂!??环境配置+问题分析+视频图像入门??万字只为你~

Python OpenCV实战画图——这次一定能行!爆肝万字,建议点赞收藏~??????

??大家中秋节快乐??接下来请欣赏Python Opencv实战之图像阈值和模糊处理,万字实战,收藏起来吧~

Python OpenCV ??超级有趣?? 颜色转换 + 几何变换,一网打尽???~

Python OpenCV图像处理:??转换+梯度??边缘检测+图像融合,aplacian金字塔合成新物种

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
??????如果你喜欢的话,就不要吝惜你的一键三连了~
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:09:13  更:2021-11-18 11:10:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:49:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码