爬虫利用Xpath解析练习demo

爬取新闻页的简要信息

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 人浏览
==================================================
"""

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

posted @ 2023-02-19 16:29  厚礼蝎  阅读(41)  评论(0编辑  收藏  举报