Python爬虫初探(六)——爬虫之xpath实战(爬取高考分数线信息)

2023-05-16

一、得到要爬取的url
二、拿到网页源码
三、得到各省份分数链接

上一章我们讨论了xpath的简单使用,这次我们就来实际应用一下xpath,看看它使用有多方便。
最近高考结束,各省分数线也陆续公布了,咱们今天就来爬取各省的高考分数线。看看每个省份的学生成绩如何。

一、得到要爬取的url

url地址如下:

url = 'https://gaokao.eol.cn/news/'

二、拿到网页源码

进行简单的get请求,唯一需要注意的是要带上请求头。还要注意乱码的问题。

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
    }
response = requests.get(url,headers=headers)
response.encoding = 'utf-8'
shengfen = response.text

三、得到各省份分数链接

通过网页解析,其中的各省分数线链接均在网页源码中,这次使用xpath的方法获取到。
先将字符串转化为Element对象。

element = etree.HTML(shengfen)

在这里插入图片描述
可以发现,信息是在一个class属性为list的大标签下,再往下一级的class属性为fline的标签下的a标签。这样可写出代码如下:

links = element.xpath('//fline/a/@href')
content = element.xpath('//fline/a/text()')

以下是运行后获取到的部分结果:
在这里插入图片描述
在这里插入图片描述
我们发现各省的链接均不完整,需要进行相应的修改。
可以得知,下面才是完整的链接:

https://gaokao.eol.cn/shan_dong/dongtai/202007/t20200726_1740379.shtml

我们需要将每条链接前面的点替换为https://gaokao.eol.cn再加上后面的部分,这一步可以使用正则表达式的替换功能。在前面导入re模块。

for i in links:
    links_xiugai = re.sub('\.\.|\.','https://gaokao.eol.cn',i)
    print(links_xiugai)

现在各省url都修改完成了,我们就来进行各自的请求。以山东省分数线为例,进行分析。
在这里插入图片描述
经过结构分析,发现文本信息都在p标签中,这样可写出如下代码:

shandongsheng_url = 'https://gaokao.eol.cn/shan_dong/dongtai/202007/t20200726_1740379.shtml'

header={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'
}
# 请求url
res = requests.get(shandongsheng_url,headers=header)
res.encoding = 'utf-8'
shandong = res.text

# 获取文本信息
element = etree.HTML(shandong)
biaoti = element.xpath('//p[@style="text-align: center;"]/b/text()')
wenben = element.xpath('//div[@class="TRS_Editor"]/p/text()')
print(biaoti)
print(wenben)

我们得到了山东省的分数情况如下:
标题
在这里插入图片描述
文本信息
在这里插入图片描述
至此,我们的高考分数线信息就爬取到了,至于后面的数据统计分析,后面再接着聊。用xpath方法获取信息是不是很方便呢?我觉得这比正则表达式好用多了😄,只需要把文档当成一个结构树就行了,按照结构来找数据。
 
 
 
第一篇:Python的要点(搭建环境、安装配置、第三方库导入方法详细过程)
第二篇:Python爬虫初探(一)——了解爬虫
第三篇:Python爬虫初探(二)——爬虫的请求模块
第四篇:Python爬虫初探(三)——爬虫之正则表达式介绍
第五篇:Python爬虫初探(四)——爬虫之正则表达式实战(爬取图片)
第六篇:Python爬虫初探(五)——爬虫之xpath与lxml库的使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫初探(六)——爬虫之xpath实战(爬取高考分数线信息) 的相关文章

  • Idea上传项目到Git分支--解决Git pull failed问题

    就是上面这张图上的字 xff0c 困扰的我好苦好苦 今天我终于战败它了啊啊啊啊啊啊啊啊啊啊啊啊啊 xff01 xff01 上面这个呢 xff0c 大概就是说本地的文件和远程Git上的代码有冲突了 xff0c 可能会把你的替换掉 xff0c
  • Arch linux系统安装及顺手安装deepin桌面

    现在arch系统很多人都学着安装 xff0c 虽然手动性强但还是很好安装的 安装方式有两种 xff0c 一种是使用archinstall xff0c 可以说是个半自动 安装方法 xff0c 只要能上网 xff0c 前期设置好了 xff0c
  • 【C++服务器入门基础------4.IPC进程间通信--管道】

    大学生寒假在家过于无聊 xff0c 整理一下以前学过的知识 xff0c 顺便复习一下 xff0c 水平较低 xff0c 专业性差 xff0c 仅供参考 xff0c 不喜勿喷 xff08 反正也没人看 xff09 连续一周多出去泡妞了 xff
  • 浅谈Binder

    参考文章 xff1a https blog csdn net ly0724ok article details 117566381 ps xff1a 强烈推荐这篇文章 xff0c 写得很仔细 xff0c 图文结合 xff0c 一看就懂 xf
  • git或svn查看远程源地址

    git查看 xff1a git remote v svn 查看 svn info 转载 git或svn查看远程源地址 https www cnblogs com jiwd p 12504815 html
  • Linux登录一直报login incorrect问题及我的解决方案

    Linux登录一直报login incorrect问题及我的解决方案 打开VMware xff0c 启动虚拟机 xff0c Linux登录 xff0c 输入用户名和密码 xff0c 报Login incorrect 难道我输错了 xff1f
  • Spring-依赖注入(IOC)

    SPRING 一 依赖注入 xff08 IOC xff09 1 什么是依赖注入 xff08 1 xff09 我们经常说的控制反转 xff08 Inversion of Control IOC xff09 和依赖注入 xff08 Depend
  • 使用Vmware虚拟机无法ping通开发板

    文章同时发布于个人博客https www shui2000 top posts 76f723b3 html 问题详细描述 嵌入式课程中 xff0c 本人使用Vmware虚拟机运行Ubuntu22 04操作系统 xff0c 无法与开发版pin
  • 深入浅析MyBatis源码

    MyBatis 1 SqlSessionFactoryBuilder 通过build方法去解析xml配置文件 通过调用XMLConfigBuilder的parse方法将配置文件封装成一个Configuration对象 Xml节点解析 封装好
  • java 无需SSL验证的HTTP请求

    实例 如果有用请给我个赞好吗 public static Map lt String Object gt doPost String url Map lt String String gt paramaters HttpPost httpR
  • Kafta原理

    消息队列通信的模式 通过上面的例子我们引出了消息中间件 xff0c 并且介绍了消息队列出现后的好处 xff0c 这里就需要介绍消息队列通信的两种模式了 xff1a 一 点对点模式 如上图所示 xff0c 点对点模式通常是基于拉取或者轮询的消
  • MapStruct简介简单应用

    1 MapStruct 是什么 xff1f 1 1 JavaBean 的困扰 对于代码中 code JavaBean code 之间的转换 xff0c 一直是困扰我很久的事情 在开发的时候我看到业务代码之间有很多的 code JavaBea
  • SpringBoot入门案例

    基础项目该包含哪些东西 Swagger在线接口文档 CodeGenerator 代码生成器 统一返回 通用的分页对象 常用工具类 全局异常拦截 错误枚举 自定义异常 多环境配置文件 Maven多环境配置 日志配置 JenkinsFile S
  • Spring事务管理机制

    一 Spring事务管理的几种方式 xff1a Spring事务在具体使用方式上可分为两大类 xff1a 1 声明式 基于 TransactionProxyFactoryBean的声明式事务管理 基于 lt tx gt 和 lt aop g
  • SpringBoot 注解大全

    一 注解 annotations 列表 1 64 SpringBootApplication 包含了 64 ComponentScan 64 Configuration和 64 EnableAutoConfiguration注解 其中 64
  • Spring 中的bean 是否线程安全

    结论 xff1a 不是线程安全的 Spring容器中的Bean是否线程安全 xff0c 容器本身并没有提供Bean的线程安全策略 xff0c 因此可以说Spring容器中的Bean本身不具备线程安全的特性 xff0c 但是具体还是要结合具体
  • SpringBoot使用PageHelper分页

    一 开发准备 1 开发工具 IntelliJ IDEA 2020 2 3 2 开发环境 Red Hat Open JDK 8u256 Apache Maven 3 6 3 3 开发依赖 SpringBoot lt dependency gt
  • Windows Server 出现多个匿名登陆用户的问题解决

    1 起因 工作中需要在同一台 windows server的机器上多个用户同时使用 xff0c 遂建立多个账号 xff0c 供大家进行使用 2 问题 一段时间后发现系统特别卡顿并会死机 xff0c 查询原因后发现 xff0c 如图所示 xf
  • java锁 synchronized的使用及原理剖析

    synchronized用法有三个 修饰实例方法 修饰静态方法 修饰代码块 1 修饰实例方法 synchronized关键词作用在方法的前面 xff0c 用来锁定方法 xff0c 其实默认锁定的是this对象 public class Th
  • 面试HashMap的原理

    一般来说 xff0c java面试必不可少的菜品 xff0c 那就是 来 xff0c 讲一下HashMap的原理 那么今天就来讲一下HashMap的原理 先说一下JDK1 7跟JDK1 8对它的改变 JDK1 7之前使用的是数组加链表 xf

随机推荐

  • JAVA开发环境配置

    1 自己在网上下载JDK xff0c 本教程使用JDK1 6 下载好JDK后双击运行 xff0c 然后根据提示进行安装 安装好JDK后 bin xff1a 存放java可执行文件 如 xff1a javac exe java exe等等 d
  • MyEcplise_Maven搭建SSM框架

    Maven源码 链接 xff1a https pan baidu com s 1eTQMJQy 密码 xff1a 8j1q 博文中的MyEcplise 链接 xff1a https pan baidu com s 1dEdQYa 密码 xf
  • 怎么使用Linux常用命令大全

    系统信息 arch 显示机器的处理器架构 1 uname m 显示机器的处理器架构 2 uname r 显示正在使用的内核版本 dmidecode q 显示硬件系统部件 SMBIOS DMI hdparm i dev hda 罗列一个磁盘的
  • MySQL常用语句详解

    Winfrom连接网页 第一种方法 xff1a 调用本地浏览器System Diagnostics Process Start 34 https www microsoft com zh cn 34 第二种方法 xff1a 连接 strin
  • Maven搭建SSH连接Oracle数据库

    Maven工程搭建SSH连接Oracle数据库 首先在pom xml里引入jar lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns xsi 61 34 http
  • MyBatis简介与运用

    1 Mybatis简介 1 1 Mybatis是什么 Mybatis是一个java的持久层框架 xff0c 保存到数据库 持久化 xff1a 保存到本地文件 1 2 Mybatis的作用 操作数据库 1 3 为什么要学习mybatis 1
  • SpringMVC入门原理

    1 Springmvc原理 1 1 什么是springmvc SpringMVC是一个Spring框架内置的对MVC模式的实现 xff0c 就spring的一个子模块 1 2 什么是mvc Model view controller 模型
  • MyBatis逆向工程建立实体

    下面是用MyEcplise开发工具 为例 使用Ecplise操作步骤雷同于MyEcplise 1 第一步 2 搜索MyBatis 等待装载完成 xff0c 完成后 3 创建一个web项目 创建包 xff0c 创建generatorConfi
  • python apscheculer 报错 skipped: maximum number of running instances reached (1)

    apscheduler定时任务报错skipped maximum number of running instances reached 1 原因是默认max instances最大定时任务是1个 xff0c 可以通过在add job中调m
  • java 反射很重要

    1 创建一个User类 public class User private String username private String password private String name public User public Use
  • Netty入门案例教程

    1 首先导入netty all 5 0 0 Alpha1 jar 2 创建一个NettyConfig 整个工程的全局配置 package websocketcom netty import io netty channel group Ch
  • 微信公众号分享的坑

    记一次微信公众号分享sdk 这里我的脚本是用jquery写的 xff0c 不带框架源码 首先创建jsp引入JavaScript微信分享js lt script type 61 34 text javascript 34 src 61 34
  • java linux部署web项目详解

    下载SecureCRT连接linux xff0c 激活SecureCRT跟怎么连接自行百度喽 xff0c 下面开始操作linux服务器 1 查看安装的jdk rpm qa grep java 2 如果有旧的jdk xff0c 就卸载jdk
  • 人工智能如何可以思考?

    近日在给同事讲人工智能的时候 xff0c 提到当数据量不够的时候 xff0c 必要时需要加入人工工程 xff0c 引导计算机 归纳 一些知识 xff0c 毕竟计算机智能比起人类智能 xff0c 最大的缺陷可能在于不懂得 举一反三 换句话说
  • 在Ubuntu 20.04上安装Google Chrome浏览器

    在Ubuntu上安装Google Chrome
  • OpenCV人脸识别之FisherFace算法(LDA线性判别分析)

    FisherFace算法 Fisherface是由Ronald Fisher发明的 xff0c Fisherface所基于的LDA xff08 Linear Discriminant Analysis xff0c 线性判别分析 xff09
  • Spring 源码-Spring的注解是如何解析的?(7)

    我们知道 ConfigurationClassPostProcessor实际上是BeanFactoryPostProcessor的一个实现类 xff0c 他特殊的地方是他还实现了BeanDefinitionRegisterPostProce
  • 在Keil5中更改工程名字的方法(亲测有效)

    1 在工程所在文件夹中的用户文件夹中找到 uvprojx 和 uvoptx 将其名称改为自己需要的名称 xff1b 2 打开 uvprojx 文件 xff0c 点击魔术棒旁边的 彩色品字 更改Project Targets 中的名称 xff
  • linux防火墙添加开放端口

    linux防火墙添加开放端口 添加开放端口 sudo firewall cmd zone 61 public add port 61 开放的端口号 协议 tcp udp permanent permanent 添加的端口号永久生效 使新增的
  • Python爬虫初探(六)——爬虫之xpath实战(爬取高考分数线信息)

    一 得到要爬取的url 二 拿到网页源码 三 得到各省份分数链接 上一章我们讨论了xpath的简单使用 xff0c 这次我们就来实际应用一下xpath xff0c 看看它使用有多方便 最近高考结束 xff0c 各省分数线也陆续公布了 xff