人邮教育首页书籍信息抓取

本文介绍了一个简单的Python爬虫项目,利用requests和lxml库抓取并解析人邮教育社区网站的图书数据,包括书名、作者和价格。通过浏览器检查元素定位XPath表达式,有效提取所需信息,并将数据保存为CSV文件。
摘要由CSDN通过智能技术生成

前言

这是一个很简单的爬虫小项目,主要目的在于抓取一些书籍信息,用到了xpath来定位,对于学习爬虫是很有用的~
接下来我给出代码和注释

代码和注释

在这里插入图片描述
点击此处----->人邮教育社区

import requests #请求模块,没有的需要匹配installrequests在终端下载
from lxml import etree #解析库,对得到的html网页信息解析时用
import csv #python内置模块,最后保存爬取到的数据时会用到
"""
标题 链接 作者 价格
"""
def get_html(url): #自定义一个函数对方法进行封装,这是请求并且得到网页html函数
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                          "AppleWebKit/537.36 (KHTML, like Gecko) "
                          "Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62"
        } #请求的头部信息,模拟浏览器进行请求,如果不加上会爬起失败
        response = requests.get(url,headers=headers) #得到请求返回的数据
        html = response.text  #得到网页文本信息
        return html
    except Exception as error:
        print("网页获取失败!")
        print(error)


result_list = [] # 存取爬取的数据



def parse(html): #自定义一个解析函数,得到了网页数据就要对其进行解析
    html = etree.HTML(html) #这里就用到了我们导入的模块进行解析
    datas = html.xpath("//*[@id='block-102']/ul/li/div[2]")#解析完后就用到了xpath对你想得到的数据进行定位获取,没有定位到的数据就不用爬取下来了,减少了爬取到的数据的冗余

通过浏览器的检查找到网页源代码,鼠标在ul这个标签上的时候,首页书籍全部高亮所以这是书籍的总标签
在这里插入图片描述

    for row in datas:
        # 书名
        name = row.xpath("h4/a/text()")[0]
        #print(name) 打印一下就可以看到是否爬取下来了
        # 链接详情
        url_two = "https://www.ryjiaoyu.com/" + row.xpath("h4/a/@href")[0]
        #print(url_two)
        # 作者
        auther = row.xpath("div/span/text()")[0].strip() # 清空名字两边的空格
        #print(auther)
        # 价格
        price = row.xpath("span/span/text()")[0]
        #print(price)
        list = [name,url_two,auther,price] # 对应的标题、链接详情、作者、价格
        #print(list)

        result_list.append(list)
    return result_list
    #print(result_list)

# 保存
def save(item,path):
    with open(path,"w",newline="") as f: # newline="" [关于newline=""的解释请借鉴一下这位大佬的博客](https://blog.csdn.net/Reborn214/article/details/123974467)
        write = csv.writer(f)
        write.writerows(item)
if __name__ == '__main__':
    url = "https://www.ryjiaoyu.com/"
    parse(get_html(url))
    save(result_list,"./test.csv") # 以列表的形式保存

运行结果

在这里插入图片描述
感谢观看!有问题的欢迎各位大佬指正
一键三连

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊佩萁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值