Python爬虫实战(实战篇)—20—爬取英文名人名言用于孩子英语学习—附完整版代码

专栏导读

在这里插入图片描述

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

1、网址分析

2、选择:lxml+xpath

  • 既然返回的是html静态网页,直接lxml+xpath,最方便!!

  • 我直接写出关键的xpath

  • 每页都有10个名言名句,我先把整页的div获取到,其余的内容、作者、标签都在其下面

//div[@class="col-md-8"]//div[@class="quote"]
  • 1、内容的xpath

.//span[@class="text"]
  • 2、作者的xpath

.//span//small[@class="author"]
  • 3、标签的xpath

//div[@class="tags"]//a

3、完整代码+写入Excel

  • 这里我就爬5页测试一下

# -*- coding: UTF-8 -*-
'''
@Project :项目名称
@File    :程序.py
@IDE     :PyCharm
@Author  :一晌小贪欢
@Date    :2024/01/22 15:33
'''

import openpyxl
import requests
from lxml import etree

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}

# 创建空白Wxcel
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['作者','内容','标签'])


for page in range(1,6):

    url = f'https://quotes.toscrape.com/page/{page}/'
    res_data= requests.get(url=url, headers=headers)
    # print(res_data.text)
    res_data.encoding = "utf-8"
    res_data = res_data.text
    # print(res_data)

    tree = etree.HTML(res_data)

    # //div[@class="col-md-8"]//div[@class="quote"]
    quotes = tree.xpath('//div[@class="col-md-8"]//div[@class="quote"]')
    for i in quotes:
        # //div[@class="col-md-8"]//div[@class="quote"]//span[@class="text"]
        content = i.xpath('.//span[@class="text"]')
        # //div[@class="col-md-8"]//div[@class="quote"]//span//small[@class="author"]
        author = i.xpath('.//span//small[@class="author"]')
        author = author[0].text
        content = content[0].text.replace('“', '').replace('”', '')
        # //div[@class="col-md-8"]//div[@class="quote"]//div[@class="tags"]//a
        tags = i.xpath('.//div[@class="tags"]//a[@class="tag"]')
        tags_list = []
        for i2 in tags:
            tags_list.append(i2.text)
        tag = ','.join(tags_list)
        print(author, '=',content, "=",tag)
        ws.append([author, content, tag])

wb.save("保存结果.xlsx")

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一晌小贪欢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值