鱼C论坛

 找回密码
 立即注册
查看: 1652|回复: 8

[已解决]python爬虫

[复制链接]
发表于 2021-3-13 18:49:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想问问这个网站的mp3怎么用python爬虫下载?
最佳答案
2021-3-14 17:22:02
本帖最后由 YunGuo 于 2021-3-14 17:23 编辑
1406598279 发表于 2021-3-14 15:30
解释一下可以吗?


都是爬虫很基础的使用。如果看不懂,那么你应该没学爬虫???我就给你简单注释一下吧。还有不懂的,建议你学完爬虫基础。
import requests
from lxml import etree

url = 'http://weixin.jiafenba.net/book/lesseons.action?b=ff80808163d2efe2016a28e59588310e#'
header = {'user-agent': 'Mozilla/5.0'}   # 定义user-agent伪装防止网站反爬
res = requests.get(url, headers=header)   # 请求页面
sel = etree.HTML(res.text)   # 解析res响应的文本数据
datas = sel.xpath('/html/body/ul/li')   # 获取所有li标签数据(datas是一个列表)
for data in datas:
    name = data.xpath('@tiptitle')[0]   # 获取当前li标签中的title
    mp3_url = 'http://weixin.jiafenba.net' + data.xpath('@filename')[0]   #  获取当前li标签中的MP3资源链接,并组合成完整url
    mp3_res = requests.get(mp3_url)   #  请求MP3资源
    with open(name + '.mp3', 'wb')as f:   
    # with open()as f:上下文管理器,open方法打开指定的文件,第一个参数是文件名,第二个参数wb是写入二进制数据模式,当文件不存在时自动创建
        f.write(mp3_res.content)   #  将mp3_res响应的二进制数据写入
    print(f'{name}下载完成!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-14 13:58:20 | 显示全部楼层
哪个网站?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 14:46:32 | 显示全部楼层

这个:
weixin.jiafenba.net/book/lesseons.action?b=ff80808163d2efe2016a28e59588310e#
记得在最前面加上http://
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 15:19:31 | 显示全部楼层
本帖最后由 YunGuo 于 2021-3-14 17:07 编辑
1406598279 发表于 2021-3-14 14:46
这个:
weixin.jiafenba.net/book/lesseons.action?b=ff80808163d2efe2016a28e59588310e#
记得在最前面 ...


最简单的代码:
import requests
from lxml import etree

url = 'http://weixin.jiafenba.net/book/lesseons.action?b=ff80808163d2efe2016a28e59588310e#'
header = {'user-agent': 'Mozilla/5.0'}    # 定义user-agent伪装
res = requests.get(url, headers=header)    # 请求页面
sel = etree.HTML(res.text)   # 解析响应html
datas = sel.xpath('/html/body/ul/li')    # xpath获取所有li列表(datas是一个列表)
for data in datas:
    name = data.xpath('@tiptitle')[0]    # 获取标题
    mp3_url = 'http://weixin.jiafenba.net' + data.xpath('@filename')[0]    # 获取MP3资源链接并组合成完整url
    mp3_res = requests.get(mp3_url)    # 请求MP3资源
    with open(name + '.mp3', 'wb')as f: 
        f.write(mp3_res.content)    # mp3_res响应的二进制数据保存为MP3
    print(f'{name}下载完成!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 15:30:15 | 显示全部楼层
YunGuo 发表于 2021-3-14 15:19
最简单的代码:

解释一下可以吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 17:22:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 YunGuo 于 2021-3-14 17:23 编辑
1406598279 发表于 2021-3-14 15:30
解释一下可以吗?


都是爬虫很基础的使用。如果看不懂,那么你应该没学爬虫???我就给你简单注释一下吧。还有不懂的,建议你学完爬虫基础。
import requests
from lxml import etree

url = 'http://weixin.jiafenba.net/book/lesseons.action?b=ff80808163d2efe2016a28e59588310e#'
header = {'user-agent': 'Mozilla/5.0'}   # 定义user-agent伪装防止网站反爬
res = requests.get(url, headers=header)   # 请求页面
sel = etree.HTML(res.text)   # 解析res响应的文本数据
datas = sel.xpath('/html/body/ul/li')   # 获取所有li标签数据(datas是一个列表)
for data in datas:
    name = data.xpath('@tiptitle')[0]   # 获取当前li标签中的title
    mp3_url = 'http://weixin.jiafenba.net' + data.xpath('@filename')[0]   #  获取当前li标签中的MP3资源链接,并组合成完整url
    mp3_res = requests.get(mp3_url)   #  请求MP3资源
    with open(name + '.mp3', 'wb')as f:   
    # with open()as f:上下文管理器,open方法打开指定的文件,第一个参数是文件名,第二个参数wb是写入二进制数据模式,当文件不存在时自动创建
        f.write(mp3_res.content)   #  将mp3_res响应的二进制数据写入
    print(f'{name}下载完成!')

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
1406598279 + 1 + 1 感谢!!!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-14 19:46:26 | 显示全部楼层
YunGuo 发表于 2021-3-14 17:22
都是爬虫很基础的使用。如果看不懂,那么你应该没学爬虫???我就给你简单注释一下吧。还有不懂的,建 ...

特别感谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-10 05:15:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表