【Python3 爬虫】U11_BeautifulSoup4之select和CCS选择器提取元素

目录

  • 1.常用CSS选择器介绍

    • 1.1 标签选择器
    • 1.2 类名选择器
    • 1.3 id选择器
    • 1.4 查找子孙元素
    • 1.5 查找直接子元素
    • 1.6 根据属性查找
  • 2.实战演练:select和css选择器提取元素
    • 2.1 获取所有的p标签
    • 2.2 获取第2个p标签
    • 2.3 获取所有class等于t3的span标签
    • 2.4 获取class为t1的p标签下的所有a标签的href属性
    • 2.5 获取所有的职位信息(文本)

1.常用CSS选择器介绍

以下是一个包含常用类选择器的案例,在案例后有具体的选择器使用介绍

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        /*标签选择器*/
        p{
            background-color: pink;
        }
        /*类选择器*/
        .h1Line{
            background-color: greenyellow;
        }
        /*id选择器*/
        #h2{
            background-color: rosybrown;
        }
        /*定位直接子元素*/
        #info > li{
            background-color: orangered;
        }

        /*根据属性定位*/
        input[name="username"]{
            background-color: dodgerblue;
        }
    </style>
</head>
<body>
    <div>
        <p>我是第1行</p>
        <p>我是第2行</p>
        <p>我是第3行</p>
        <p>我是第4行</p>
    </div>
    <div>
        <h1 class="h1Line">我是标题1</h1>
    </div>
    <div>
        <h2 id="h2">我是标题2</h2>
        <h2 id="h2s">我是标题2的参照例子</h2>
    </div>
    <div id="info">
        <li>姓名</li>
        <li>年龄</li>
        <li>身高</li>
        <div>
            <li>班级</li>
            <li>教师</li>
            <li>人数</li>
            <em>asbas</em>
        </div>
    </div>

    <form>
        <input type="text" name="username"/>
        <input type="password" name="password"/>
    </form>
</body>
</html>

1.1 标签选择器

根据标签的名字选择。示例代码如下:

p{
    background-color: pink;
}

1.2 类名选择器

根据类名选择,那么需要在类名前加一个点。示例代码如下:

.h1Line{
    background-color: greenyellow;
}

1.3 id选择器

根据id选择,那么需要在id的前面加一个#号。示例代码如下:

#h2{
    background-color: rosybrown;
}

1.4 查找子孙元素

查找子孙元素,那么在子孙元素直接有一个空格。示例代码如下:

#info  li{
    background-color: orangered;
}

1.5 查找直接子元素

查找直接子元素,那么要在父子元素中间有一个>,示例代码如下:

#info > li{
    background-color: orangered;
}

1.6 根据属性查找

根据属性的名字进行查找,那么应该先写标签名字,然后在括号中写属性的值。示例代码如下:

input[name="username"]{
    background-color: dodgerblue;
}

2.实战演练:select和css选择器提取元素

下面使用到的"前程无忧"对应的代码来自于【Python3 爬虫】U11_BeautifulSoup4库提取数据详解

2.1 获取所有的p标签

from bs4 import BeautifulSoup
html = "前程无忧"
soup = BeautifulSoup(html,‘lxml‘)
ps = soup.select(‘p‘)
for p in ps:
    print(p)
    print(‘=‘ * 40)

2.2 获取第2个p标签

from bs4 import BeautifulSoup
html = "前程无忧"
soup = BeautifulSoup(html,‘lxml‘)
p = soup.select(‘p‘)[1]
print(p)

2.3 获取所有class等于t3的span标签

from bs4 import BeautifulSoup
html = "前程无忧"
soup = BeautifulSoup(html,‘lxml‘)
spans = soup.select(".t3") #也可以直接写spans = soup.select(".t3")
# 也可以写为:spans = soup.select("span[class=‘t3‘]")
for span in spans:
    print(span)

2.4 获取class为t1的p标签下的所有a标签的href属性

from bs4 import BeautifulSoup
html = "前程无忧"
soup = BeautifulSoup(html,‘lxml‘)
aList = soup.select("p.t1 a")
for a in aList:
    href = a[‘href‘]
    print(href)

2.5 获取所有的职位信息(文本)

from bs4 import BeautifulSoup
html = "前程无忧"
soup = BeautifulSoup(html,‘lxml‘)

divs = soup.select(‘div‘)
infoSet = list()
for div in divs:
    info = {}
    infos = list(div.stripped_strings) # div.stripped_strings返回的是一个生成器
    info[‘job‘] = infos[0]
    info[‘company‘] = infos[1]
    info[‘address‘] = infos[2]
    info[‘salary‘] = infos[3]
    info[‘ReleaseDate‘] = infos[4]
    infoSet.append(info)
print(infoSet)

原文地址:https://www.cnblogs.com/OliverQin/p/12597211.html

时间: 2024-11-05 18:34:32

【Python3 爬虫】U11_BeautifulSoup4之select和CCS选择器提取元素的相关文章

python3 爬虫小例子

#!/usr/bin/env python# -*- coding: utf-8 -*- import sys,reimport urllib.request,urllib.parse,http.cookiejar class myW3():    def login(self):        'post 数据'        data = {"uid":self.uid,'password':self.password,'actionFlag':'loginAuthenticate

Python3 爬虫(八) -- BeautifulSoup之再次爬取CSDN博文

序 我的Python3爬虫(五)博文使用utllib基本函数以及正则表达式技术实现了爬取csdn全部博文信息的任务. 链接:Python3 爬虫(五) -- 单线程爬取我的CSDN全部博文 上一篇,我们学习了BeautifulSoup这样一个优秀的Python库,必须有效利用起来.那么我们就利用BeautifulSoup4重新实现一次爬取csdn博文的任务. 由于我修改了博客配置,首页主题换了一下,我们基于新的主题查看网页,如下图所示: 同样的,确认要提取的信息,以及博文总页数. 分析网页源码

python3爬虫--反爬虫应对机制

python3爬虫--反爬虫应对机制 内容来源于: Python3网络爬虫开发实战: 网络爬虫教程(python2): 前言: 反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面: ①访问终端限制:这种可通过伪造动态的UA实现: ②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制: ③访问时间限制:延迟请求应对: ④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行

python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问. header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码中即可. 'Accept-Encoding':是浏览器发给服务器,声明浏览器支持的编码类型.一般有gzip,deflate,br 等等. python3中的 requests包中response.text 和 response.content response.content #字节方式的响应体,会

Python3爬虫实战:实战源码+博客讲解

Python Spider 贵有恒,何必三更起五更睡:最无益,只怕一日暴十寒. Python3爬虫实战:实战源码+博客讲解 个人网站 CSDN博客 CSDN爬虫专栏 学习交流群[328127489] 声明 代码.教程仅限于学习交流,请勿用于任何商业用途! 文章首发声明 文章在自己的个人网站首发,其他平台文章均属转发,如想获得最新更新进展,欢迎关注我的个人网站:http://cuijiahua.com/ 目录 爬虫小工具 文件下载小助手 爬虫实战 笔趣看小说下载 百度文库免费文章下载助手_rev1

python3爬虫(4)各种网站视频下载方法

python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载. B站视频页面链接: https://www.bilibili.com/bangumi/play/ep118490?from=search&seid=7943855106424547918 首先我们用万能下

【Python3 爬虫】U11_爬取中国天气网

目录 1.网页分析 2.代码实现 1.网页分析 庚子年初,各种大事件不期而至,又赶上最近气温突变,所以写个爬虫来爬取下中国天气网,并通过图表反映气温最低的前20个城市. 中国天气网:http://www.weather.com.cn/textFC/hb.shtml 打开后如下图: 从图中可以看到所有城市按照地区划分了,并且每个城市都有最低气温和最高气温,通过chrome查看Elements,如下: 从上图可以看到展示当天的数据,那么<div class='conMidtab'>..这个标签则没

【Python3 爬虫】U28_多线程爬取斗图啦的表情包

目录 1.需求描述 2.实战代码 2.1 单线程爬取 2.2 多线程版 1.需求描述 爬取斗图啦网站,地址为:https://www.doutula.com/photo/list/[Python3 爬虫]U28_多线程爬取斗图啦的表情包 原文地址:https://www.cnblogs.com/OliverQin/p/12636681.html

Jquery not选择器实现元素显示隐藏

初初认识jQuery的not选择器,想要实现的功能是,点击第一个div,显示第二个div,点击第一个div以外的地方,隐藏第二个div. 具体代码如下: <!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(