`

Python 网页抓取

 
阅读更多
import json
import os
import requests
import bs4
from lxml import etree

# 模拟真实浏览器标头
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}

# 获取专辑页数
def get_album(url):
    res = requests.get(url, headers=header)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    # pagingBar_page为开发者模式下查看到的页码标识
    elems = soup.select('a[class^="pagingBar_page"]')
    print("本频道共有{}个页面".format(len(elems)-1))
    for i in elems:
        if i.text == "下一页":
            continue
        print("正在下载第{}/{}个页面".format(i.text, len(elems)-1))

        if i.text != "1":
            url = "http://www.ximalaya.com" + i.attrs["href"]

        get_url(url)

def get_url(url):
    res = requests.get(url, headers=header)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    # sound_id为开发者模式下查看到的页码标识
    elems = soup.select('li[sound_id]')

    for i in range(len(elems)):
        murl = 'http://www.ximalaya.com/tracks/{}.json'.format(elems[i].attrs["sound_id"])
        html = requests.get(murl, headers=header).text
        dic = json.loads(html)
        try:
            print("正在下载第{}/{}文件,文件名{}:{}。".format(i+1, len(elems),
                                                     elems[i].attrs["sound_id"],dic["title"]))
            get_m4a(dic["play_path"], elems[i].attrs["sound_id"])
        except:
            print("下载{}/{}文件,文件名{}:{}时失败。".format(i + 1, len(elems),
                                                     elems[i].attrs["sound_id"], dic["title"]))


def get_m4a(url, id):
    folder = "郭德纲相声"    # 自定义文件夹名称
    res = requests.get(url)
    file = open(os.path.join(folder, os.path.basename(id)), 'wb')
    for chunk in res.iter_content(100000):
        file.write(chunk)
    file.close()


if __name__ == '__main__':
    url = "http://www.ximalaya.com/1000202/album/2667276/"  # 专辑地址
    get_album(url)

 

分享到:
评论

相关推荐

    Python网页抓取讲解.pptx

    Python 网页抓取讲解 Python 网页抓取是指使用 Python 语言从互联网上抓取数据的过程。该技术广泛应用于数据挖掘、机器学习、自然语言处理等领域。下面是 Python 网页抓取的详细讲解: 一、为什么需要网页抓取 ...

    Python 网页抓取入门:技术原理与实战指南

    使用 Python 进行网页抓取时,可以利用 Requests、Beautiful Soup、lxml、Scrapy 和 Selenium 等工具。在编写爬虫时,需要考虑遵守 Robots.txt、处理异常、用户代理旋转、法律和道德问题。此外,还可以通过分布式...

    Python网页抓取/拉古/LaGou.py

    Python网页抓取/拉古/LaGou.py

    Python网页抓取及信息提取

    ※网页抓取及信息提取

    Python抓取页面、Pthon爬虫参考资料

    以下是一些基于Python的网页抓取和爬虫技术的关键知识点: 1. **基础抓取**:首先,Python中的`urllib.request`库提供了基本的HTTP请求功能,如`urlopen`函数可以用来获取指定URL的响应内容。例如,`urllib.request...

    Python实现抓取HTML网页并以PDF文件形式保存的方法

    今天介绍将HTML网页抓取下来,然后以PDF保存,废话不多说直接进入教程。 今天的例子以廖雪峰老师的Python教程网站为例:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 二、...

    Python网页数据抓取以及表格的制作

    在IT行业中,Python语言因其简洁明了的语法和强大的库支持而被广泛应用于网页数据抓取和数据分析领域。本主题将深入探讨如何使用Python进行网页数据抓取,并介绍如何利用这些数据创建表格,同时涉及CSS文件的生成和...

    Web-Scraping-with-Python_Python网页信息抓取_Python抓取网页_jupyter_Python抓

    **Python网页信息抓取技术详解** 网页信息抓取,也称为网络爬虫或网页抓取,是通过自动化程序从互联网上获取大量数据的过程。在这个领域,Python语言因其强大的库支持和简洁的语法而成为首选工具。本教程将深入探讨...

    Jupyter_简单但有用的Python网页抓取教程代码.zip

    Jupyter-Notebook

    web-case:python网页抓取工具

    【Python网页抓取工具WebCASE详解】 WebCASE是一款基于Python的网络抓取工具,由Eric Janusson开发,专门设计用于查询和可视化大型科学数据库。在互联网时代,数据的获取和处理成为科研工作的重要环节,WebCASE...

    Python实现抓取网页生成Excel文件的方法示例

    本文实例讲述了Python实现抓取网页生成Excel文件的方法。分享给大家供大家参考,具体如下: Python抓网页,主要用到了PyQuery,这个跟jQuery用法一样,超级给力 示例代码如下: #-*- encoding:utf-8 -*- import sys...

    python爬虫抓取网页数据大作业项目代码.zip

    python爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码....

    Python数据抓取技术与实战.pdf

    - Scrapy框架:是一个快速高层次的屏幕抓取和网页抓取框架,用于抓取网站并从页面中提取结构化的数据。 - Selenium:是一个自动化测试工具,可以模拟浏览器行为,适合于登录、点击等复杂交互的网页抓取。 3. HTML...

    python抓取淘宝天猫网页商品详情Demo

    在这个"python抓取淘宝天猫网页商品详情Demo"中,我们将探讨如何利用Python进行网页抓取,特别是针对淘宝和天猫的商品详情页面。 首先,我们需要理解网页抓取的基本原理。网页抓取,也称为网络爬虫,是通过模拟...

    python爬虫,如何抓取网页数据

    python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,...

    Python抓取网页代码

    Python抓取网页代码 抓取了国家环境网站上的一组AQI数据

    OshaScrapy:一个 Python 网页抓取代码,用于获取有关报告的工作场所死亡、灾难、检查和违规行为的公开 OSHA 数据

    OshaScrapy 一个 Python 网页抓取代码,用于获取有关报告的工作场所死亡、灾难、检查和违规行为的公开 OSHA 数据。 找出公共数据集的最新文件名。 直接从劳工部数据目录中提取它们。

Global site tag (gtag.js) - Google Analytics