爬虫案例—抓取找歌词网站的按歌词找歌名数据

这篇具有很好参考价值的文章主要介绍了爬虫案例—抓取找歌词网站的按歌词找歌名数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

爬虫案例—抓取找歌词网站的按歌词找歌名数据

找个词网址:https://www.91ge.cn/lxyyplay/find/

目标:抓取页面里的所有要查的歌词及歌名等信息,并存为txt文件

一共46页数据

网站截图如下:

爬虫案例—抓取找歌词网站的按歌词找歌名数据,总结经验,编程,爬虫案例,爬虫,python

抓取完整歌词数据,如下图:

爬虫案例—抓取找歌词网站的按歌词找歌名数据,总结经验,编程,爬虫案例,爬虫,python

源码如下:

import asyncio
import time
import aiohttp
from aiohttp import TCPConnector  # 处理ssl验证报错
from lxml import etree

headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}


# 返回每首歌的href函数
async def get_song_url(page_url):
    async with aiohttp.ClientSession(headers=headers, connector=TCPConnector(ssl=False)) as session:
        async with session.get(page_url) as res:
            html = await res.text()
            tree = etree.HTML(html)
            url_lst = tree.xpath('//div[@class="des"]/a/@href')
    return url_lst


# 获取每首歌的详细信息
async def get_song_word(song_url):
    async with aiohttp.ClientSession(headers=headers, connector=TCPConnector(ssl=False)) as session:
        async with session.get(song_url) as res:
            html = await res.text()
            tree = etree.HTML(html)
            if tree is not None:
                song_question = tree.xpath('//div[@class="logbox"]')
                if song_question:
                    song_q = song_question[0].xpath('./h1/text()')[0]
                else:
                    pass
                div_word = tree.xpath('//div[@class="logcon"]')
                if div_word:
                    where_song = div_word[0].xpath('./h2[1]/text()')[0]
                    question_song = div_word[0].xpath('./p[1]/text()')[0]
                    answer_song = div_word[0].xpath('./p[2]/text()')[0]
                    song_words = div_word[0].xpath('./p[position()>2]//text()')
                    # song_name = div_word.xpath('./h2[2]/text()')[0].strip('\r\n\t')
                    song_words = ''.join(song_words[:-1]).strip('\r\n\t')

                    with open(f'songs/{song_q}.txt', 'a') as f:
                        f.write(where_song + '\n' + question_song + '\n' + answer_song + '\n\n' + song_words)
            else:
                pass


if __name__ == '__main__':
    t1 = time.time()
    loop = asyncio.get_event_loop()
    for n in range(1, 47):
        song_url = f'https://www.91ge.cn/lxyyplay/find/list_16_{n}.html'
        urls = loop.run_until_complete(get_song_url(song_url))
        tasks = [get_song_word(url) for url in urls]
        loop.run_until_complete(asyncio.gather(*tasks))

    print(f'耗时:{time.time() - t1:.2f}秒')

运行结果如下图:

爬虫案例—抓取找歌词网站的按歌词找歌名数据,总结经验,编程,爬虫案例,爬虫,python

利用协程抓取数据,效率很高。文章来源地址https://www.toymoban.com/news/detail-820297.html

到了这里,关于爬虫案例—抓取找歌词网站的按歌词找歌名数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网站服务器 如何防止恶意爬虫抓取

    恶意的蜘蛛行为不光会造成服务器的压力,并且对seo没有实质性用处,下面就拿SemrushBot蜘蛛为例来说明如何防止恶意爬取 SemrushBot蜘蛛爬虫UA:\\\"Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)\\\" 1、SemrushBot蜘蛛抓取过多增加网站服务器负担 2、SemrushBot不会给网站带来实

    2023年04月10日
    浏览(54)
  • 爬虫案例—抓取小米商店应用

    代码如下: # 抓取第一页的内容 import requests from lxml import etree url = ‘https://app.mi.com/catTopList/0?page=1’ headers = { ‘User-Agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36’ } res = requests.get(url, headers=headers) content = res.content.decode(‘

    2024年01月16日
    浏览(33)
  • 爬虫案例—表情党图片data-src抓取

    表情党网址:https://qq.yh31.com 抓取心情板块的图片data-src 由于此页面采用的是懒加载技术,为了节省网络带宽和减轻服务器压力。不浏览的图片,页面不加载,统一显示LOADING…。如下图: 按F12(谷歌浏览器)通过分析,表情图片的真正链接为data-src 通过分析,在搜索框里输入

    2024年01月16日
    浏览(36)
  • 爬虫数据抓取怎么弄?

    爬虫数据抓取是一种自动化的数据采集技术,可以快速、高效地从互联网上获取大量的数据。本文将介绍爬虫数据抓取的基本原理、常用的爬虫框架和工具、爬虫数据抓取的注意事项以及爬虫数据抓取的应用场景。 一、爬虫数据抓取的基本原理 爬虫数据抓取的基本原理是通

    2024年02月05日
    浏览(40)
  • 逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

    随着网络技术的发展,网站为了保护自己的数据和资源,纷纷采用了各种反爬虫机制。然而,逆向爬虫技术的出现,使得我们可以突破这些限制,实现对目标网站的深入分析和抓取。本文将介绍逆向爬虫进阶实战的一些技巧和代码片段,帮助读者更好地理解和掌握这一技术。

    2024年02月04日
    浏览(53)
  • 高并发数据抓取实战:使用HTTP爬虫ip提升抓取速度

    又到每天一期学习爬虫的时间了,作为一名专业的爬虫程序员,今天要跟你们分享一个超实用的技巧,就是利用HTTP爬虫ip来提升高并发数据抓取的速度。听起来有点高大上?别担心,我会用通俗易懂的话来和你们说,让你们秒懂怎么操作的。 首先,咱们得理解一下为什么HT

    2024年02月11日
    浏览(50)
  • Python网络爬虫-WebSocket数据抓取

    目录 前言 1、WebSocket请求的分析通常涉及以下几个方面: 2、利用WebSocket爬取数据 总结 最后,创作不易!非常感谢大家的关注、点赞、评论啦!谢谢三连哦!好人好运连连,学习进步!工作顺利哦!  博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作

    2024年04月27日
    浏览(43)
  • 22.网络爬虫—APP数据抓取详讲

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。

    2024年02月04日
    浏览(54)
  • 如何使用 Python 爬虫抓取动态网页数据

    随着 Web 技术的不断发展,越来越多的网站采用了动态网页技术,这使得传统的静态网页爬虫变得无能为力。本文将介绍如何使用 Python 爬虫抓取动态网页数据,包括分析动态网页、模拟用户行为、使用 Selenium 等技术。 在进行动态网页爬取之前,我们需要先了解动态网页和静

    2023年04月24日
    浏览(74)
  • java使用htmlunit + jsoup 爬网站图片案例(爬虫学习)

    该文章用于自己学习爬虫使用 目的: 从百度图片中搜索\\\"风景\\\"并下载图片到本地 思路: 使用htmlunit进行模拟用户操作, 并使用jsoup对数据进行解析,获取到需要的数据后,再下载到本地保存 htmlunit官网 jsoup官网 使用谷歌浏览器打开百度图片网站 https://image.baidu.com 输入\\\"风景\\\", 点击

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包