python爬虫-使用request,lxml库爬取游戏排名

2023-05-16

爬取目标URL:http://wy.hao123.com/top
开发环境:

  • PyCharm 2019.2.3
  • Python3.6
  • 火狐浏览器

使用的三方库:

  • requests
  • lxml

执行结果

执行结果

开始

抓取网页

打开火狐浏览器,输入地址 http://wy.hao123.com/top ;
按F12功能键,启动调试功能;
调试界面通过分析使用下面的xpath代码可以获取到想要的数据

"//div[@class='list1 margin-right']|//div[@class='list1 ']"

匹配结果

编写爬虫代码

spider_hao123_01.py

"""
    爬取hao123网站的网络游戏排行榜
    http://wy.hao123.com/top
"""
import requests
from lxml import etree


def load_context():
    """ 获取http://wy.hao123.com/top网页内容 """

    # 定义HTTP请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0'
    }
    # url地址
    url = "http://wy.hao123.com/top"

    # 使用requests的get方法获取网页内容
    rsp_ctx = requests.get(url, headers=headers)
    # 返回网页内容
    return rsp_ctx.text


def parse_context(c):
    html = etree.HTML(c)
    # 获取全部排名div标签
    divs = html.xpath("//div[@class='list1 margin-right']|//div[@class='list1 ']")
    with open('./hao123_wy_top.txt', 'w') as f:
        for div in divs:
        	# 获取排名的名称
            title = div.xpath("./div[@class='tlt']")[0].text
            # print(title)
            f.write(title + '\n')
            # 获取排名数据项
            games = div.xpath(".//li")
            for idx, game in enumerate(games):
            	# 获取游戏名称
                game_name = game.xpath("./p/a")[0].text
                # 获取游戏类型
                game_type = game.xpath("./em")[0].text
                f.write("\t" + str(idx+1) + "\t" + game_name + "\t" + game_type + '\n')
    print("hao123网游排名获取完毕。")


if __name__ == "__main__":
    ctx = load_context()
    parse_context(ctx)

结语

这是一个简单的爬虫例子,爬取的是一个静态页面。在html页面解析时使用到了xpath语法。
希望对你有所帮助。

XPath教程.

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

python爬虫-使用request,lxml库爬取游戏排名 的相关文章

随机推荐

  • SpringBoot集成RocketMQ实现事务消息 结合实际业务出发 多业务多场景分析 附带示例代码和解决方案

    SpringBoot集成RocketMQ实现事务消息 结合实际业务出发 多业务多场景分析 附带示例代码和解决方案 前言前期准备SpringBoot集成RocketMQ实现事务消息示例代码POM添加application yml配置信息生产者
  • 如何下载VC++ 2015.3 v140 toolset

    在通过PowerShell编译openssh portable时 xff0c 碰到了错误 xff1a Start OpenSSHBuild Configuration Release NativeHostArch x64 Write Bui
  • SpringCloudGateway实现实时刷新Nacos服务列表(使用Ribbon负载均衡器解决方案)

    SpringCloudGateway实现实时刷新Nacos服务列表 xff08 使用Ribbon负载均衡器解决方案 xff09 前言错误信息解决方案一 xff08 订阅Nacos服务状态发生改变 xff0c 主动更新本地服务列表 xff09
  • SpringCloud搭配OpenFeign实现实时刷新Nacos服务列表(使用Ribbon负载均衡器解决方案)

    SpringCloud实现实时刷新Nacos服务列表使用Ribbon负载均衡器解决方案 前言错误信息解决方案一 xff08 订阅Nacos服务状态发生改变 xff0c 主动更新本地服务列表 xff09 核心代码实现原理分析 解决方案二 xf
  • Ubuntu下安装sysv-rc-conf报错:ubuntuE: Unable to locate package sysv-rc-conf

    这里我使用的是ubuntu 18 04 1版本 xff0c 当我安装sysv rc conf时 xff0c 报了如下的错 xff1a E Unable to locate package sysv rc conf xff08 无法定位sys
  • 结构体变量以及结构体数组

    1 概述 C 语言允许用户自己指定这样一种数据结构 xff0c 它由不同类型的数据组合成一个整体 xff0c 以便引用 xff0c 这些组合在一个整体中的数据是互相联系的 xff0c 这样的数据结构称为结构体 xff0c 它相当于其它高级语
  • 栈的操作(入栈、出栈)之一:顺序栈

    栈操作原则 使用栈操作数据 xff0c 必须遵循 先入后出 的原则 xff1b 栈操作之顺序栈 使用顺序表实现栈的存储结构 xff0c 本质上是数组 xff0c 数组的一端做栈底 xff0c 另一端做栈顶 xff1b 一个数组其下标最低的位
  • 软件工程——六种模型

    瀑布模型 思想 xff1a 1 从制作时间上按工序把问题化简 2 将功能实现与制作分开便于分工协作 特点 xff1a 1 时间顺序性和依赖性 2 推迟实现的观点 3 质量保证的观点 优点 xff1a 1 奠定了软件工程方法的基础 xff1b
  • AVT工业相机Windows、Opencv开发——驱动相机(超详细)

    一 概述 1 1使用Vimba控制相机需要经历以下几个步骤 1 打开Vimba 2 查找相机列表 3 打开特定相机 4 配置参数 xff08 可选 xff09 5 采集 xff1a 采集过程共分为5步 xff0c 具体见1 2 6 关闭相机
  • python-opencv尺寸测量

    首先 xff0c 利用机器视觉来测定零件尺寸 xff0c 我们能够直接得到的是图片的像素 xff0c 要想获得尺寸大小 xff0c 我们必须找到像素和实际尺寸间的关系 我们在这里定义一个比例概念 xff1a 每度量比的像素 xff08 pi
  • Bounding box(bbox) 预测

    在出现Bounding box预测之前 xff0c 一般都是通过滑动窗口进行目标检测 本文前两部分介绍滑动窗口算法 xff0c 这样是为了更好介绍 bounding box如何引出 为了解决什么问题而引出的 也可直接跳跃到第三部分看有关bo
  • YOLOv3网络结构分析以及工作流程

    注意 xff1a 本文章有很多图 xff0c 但是都是YOLOv3的结构图 xff0c 只是每张图表达出的信息都各有特色 xff0c 可将这些结构图结合起来 xff0c 能更好的理解 1 Darknet 53 模型结构 在论文中虽然有给网络
  • 飞浆七天深度学习

    文章目录 前言图像处理原理与深度学习入门百度的飞浆实战可视化数据准备可视化效果图片 深度学习原理与使用方法实战手势识别 卷积神经网络原理与使用实战车牌识别分割字符的代码定义MyLeNet网络 经典卷积网络解读数据增强计算VGG的参数小姐姐手
  • Ubuntu18.04安装教程——超详细的图文教程

    电脑配置 xff1a 名称 xff1a Lenovo 拯救者Y7000P 处理器 xff1a i7 10750H 内存 xff1a 32G 固态 xff1a 1TB 显卡 xff1a RTX2060 6G 一 准备工作 本文以 Ubuntu
  • VINS-Course代码解析——run_euroc前端数据处理

    vins mono总框架如下 xff1a 主要分为三大块 xff1a 我们先从主函数 main 入手 xff1a 主函数中有三个线程 xff0c 读取完数据集和配置文件的路径后就会进入这三个线程 xff0c 如下图 xff1a thd Ba
  • C++求解N个数的最大公约数、最小公倍数

    一 2个数的最大公约数 span class token comment 辗转相除法 span span class token keyword int span span class token function gcd span spa
  • 子序列个数——动态规划

    题目 xff1a 统计一个字符串中全部不同的子序列的个数 思路 xff1a 动态规划求解 令 f i 61 前 i 个元素中包含的全部子序列的个数 那么状态转移方程分为下面两种情况 xff1a 当第 i 个元素在前面 i 1 个字符中没有出
  • 字符串中特定子序列出现的次数(动态规划)

    题目 xff1a 给定一个字符串 xff0c 求子序列 cwbc 出现的次数 思路 xff1a 动态规划 令 dp i j 表示前 i 个字符中匹配了字符串 cwbc 中前 j 位 xff08 j 61 1 2 3 4 xff09 的个数
  • 认识node

    一 认识node node是一个基于Chrome V8引擎的JavaScript代码运行环境 浏览器 xff08 软件 xff09 能够运行JavaScript代码 xff0c 浏览器就是JavaScript代码的运行环境 xff08 js
  • python爬虫-使用request,lxml库爬取游戏排名

    爬取目标URL xff1a http wy hao123 com top 开发环境 xff1a PyCharm 2019 2 3Python3 6火狐浏览器 使用的三方库 xff1a requestslxml 执行结果 开始 抓取网页 打开