首页 > 其他分享 >爬虫利用Xpath解析练习demo

爬虫利用Xpath解析练习demo

时间:2023-02-19 16:33:05浏览次数:32  
标签:Xpath xpath demo 爬虫 ele 标签 print news class

爬取新闻页的简要信息

import requests
from lxml import etree
from lxml.etree import _Element

Base_url = "https://news.cnblogs.com"
Base_path = "/n/page/"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
}
# 这里只爬取第一页,可根据实际情况更改
for i in range(1, 2):
    url = f"{Base_url}{Base_path}{i}/"
    with requests.get(url=url, headers=headers) as res:
         # 非正常页面,直接返回状态码
        if res.status_code != 200:
            print(res.status_code)
            break
        
        # 清洗数据
        # 用lxml解析
        root: _Element = etree.HTML(res.content)
        # 取出每条新闻的标签块
        b = root.xpath("//div[@class='news_block']")
        # 遍历 在标签块的基础上查找其他的标签元素
        for ele in b:
            ele: _Element
            print("标题:", ele.xpath(".//h2[@class='news_entry']/a/text()")[0])
            print("作者:", ele.xpath(".//div[@class='entry_footer']/a/text()")[0].strip())
            print("链接:", Base_url + ele.xpath(".//h2[@class='news_entry']/a")[0].get("href"))
            print("发布时间:", ele.xpath(".//div[@class='entry_footer']/span[@class='gray']/text()")[0].strip())
            print("标签:", *[e.strip() for e in ele.xpath(".//div[@class='entry_footer']/span[@class='tag']/a/text()")])
            print(ele.xpath(".//div[@class='entry_footer']/span[@class='view']/text()")[0].strip())
            print("=" * 50)

# 部分打印内容
"""
标题: 马云澳洲见老朋友,43年前曾在西湖边合影
作者: itwriter
链接: https://news.cnblogs.com/n/736836/
发布时间: 2023-02-19 14:02
标签: 马云
33 人浏览
==================================================
标题: 微软必应计划在AI搜索中引入广告模式 或于3月公布细节
作者: itwriter
链接: https://news.cnblogs.com/n/736835/
发布时间: 2023-02-19 13:55
标签: bing
7 人浏览
==================================================
标题: 中国工程院院士王坚:我国已具备支撑ChatGPT发展的算力基础
作者: itwriter
链接: https://news.cnblogs.com/n/736834/
发布时间: 2023-02-19 13:47
标签: 王坚
13 人浏览
==================================================
标题: 微软将把必应聊天回复限制在 5 条以内,以防人工智能越界
作者: itwriter
链接: https://news.cnblogs.com/n/736833/
发布时间: 2023-02-19 13:40
标签: bing
7 人浏览
==================================================
标题: 设计师编辑成ChatGPT用户主力!程序员仅占4.4%
作者: itwriter
链接: https://news.cnblogs.com/n/736832/
发布时间: 2023-02-19 13:35
标签: ChatGPT
9 人浏览
==================================================
"""

学习练习使用,切勿过度爬取

标签:Xpath,xpath,demo,爬虫,ele,标签,print,news,class
From: https://www.cnblogs.com/guangdelw/p/17134978.html

相关文章

  • 利用php爬虫querylist框架 监听CSDN 关注博主的文章,并发送邮件php爬虫Demo
    有时候挺喜欢一个人的csdn里面的文章,但是又想第一时间知道更新了什么,新鲜内容。所以做了一个极其简单的,爬ssdn网站的小工具,能实现功能即可。后面可以新增规则,监听官方网站的......
  • scout-elasticsearch-driver + laravel Demo学习
    项目地址:​​https://github.com/yb19890724/laravel-es​​1。在本地穿件数据库,修改.env的信息我的env文件​​点击下载​​2。env中配置es的地址。3.根目录下执行compo......
  • egg.js. demo
    丑团git前端expo​​​https://gitee.com/honbingitee/ugly-tuan-expo​​​后端egg.js​​https://gitee.com/honbingitee/ugly-tuan-egg​​/*eslint-disableinde......
  • fastapi_sqlalchemy_mysql_rbac_jwt_gooddemo
    /Users//codelearn/fastapi_sqlalchemy_mysql_01/init_test_data.py#!/usr/bin/envpython3#-*-coding:utf-8-*-importasynciofromemail_validatorimportEmai......
  • Dapr Workflow构建块的.NET Demo
    Dapr1.10版本中带来了最有亮点的特性就是工作流构建块的的发布,虽然是Alpha阶段,可以让我们尽早在应用系统中规划工作流,在使用Dapr的系统中更好的编写负责的分布式应用系......
  • Python爬虫-第五章-2-爬取某网站图库
    技术点  1.requests  2.beautifulSoupps:程序可扩展  1.比如翻页下载  2.下拉加载更多可以用selenium  3.多线程或者异步协程提升下载效率 ......
  • 如何用chatGPT、代理IP和网络爬虫,打造一个智能有趣的聊天机器人?
    AI(人工智能)是指让机器具有感知、合成和推理信息的能力,与人类和非人类动物的智能相对应。AI可以实现从经验中学习、适应新的输入和执行类似人类的任务。我们今天听到的大多......
  • SPI读写官方Demo
    //SPDX-License-Identifier:GPL-2.0-only/**SPItestingutility(usingspidevdriver)**Copyright(c)2007MontaVistaSoftware,Inc.*Copyright(c)......
  • python爬虫基本学习——函数(2.16博客补)
    函数概念:编写程序时,需要某块代码多次,为了提高编写效率和代码的重用,把具有独立功能的代码块组织为一个小模块,即函数。代码练习'''#函数的定义defprintinfo():pri......
  • Python 爬虫方法总结
    实现爬虫的套路准备URL准备start_urlurl地址规律不明显,总数不确定通过代码提取下一页的url通过xpath提取寻找url地址,部分参数在当前的响应中(比如当前页码数和总......