求助!爬虫遇到docement!!!
本帖最后由 学习编程中的Ben 于 2023-1-3 20:08 编辑贯串我平常的原则,先文字描述问题:
在我爬取http://www.woyaotingshu.com//play/5440-0-1.html这个网站时
它的mp3文件地址
下图所指箭头即我要求的文件,很长,就不放了
https://s1.ax1x.com/2023/01/03/pSisZVJ.jpg
根据我的代码,已经能爬到<iframe>这里了,
但在#documentt这一行,里面的代码被隐藏了,不信你们去爬爬看
如何获取到#document里面的内容?
我的代码:
from lxml import html
from requests_html import HTMLSession
# 书的地址
url="http://www.woyaotingshu.com//play/5440-0-1.html"
# 创建会话
session = HTMLSession()
# UA伪装,防止反爬
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
" (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"
}
r = session.get(url=url, headers=headers)
if r.status_code == 200:
r.html.render()
r.html.encoding = 'utf-8'
print(r.html.html)
class_wp = r.html.xpath('.//script[@type="text/javascript"]')
print(class_wp) #输出网页源码
谁来救救孩子啊?
@Twilight6 @Hello. @青出于蓝 @嘉岳呀 @人造人
非要给我最佳吗?上面好多人也给你解决了问题,你也可以设置他们最佳的,^_^
不过为什么你@我,我没有收到提醒?
你@的下面没有下划线,应该是你没有成功@到我吧
@人造人 大佬们,救命啊!!!! @不二如是 求大佬指教 求大佬指教
@不二如是 是document,把单词打对 本帖最后由 suchocolate 于 2023-1-4 10:06 编辑
把html码源文件保存一下,看看有没有你说的document,有可能是浏览器渲染出来的,实际直接get不到。 url="http://t3344t.tingchina.com/yousheng/%E7%A7%91%E5%B9%BB%E6%9C%89%E5%A3%B0/%E5%90%9E%E5%99%AC%E6%98%9F%E7%A9%BA_%E5%8D%8E%E9%A3%8E%E7%A5%9E%E9%9F%B5/001%E7%AC%AC1%E7%AF%87%E7%AC%AC1%E9%9B%86%E7%AC%AC01%E7%AB%A0_%E7%BD%97%E5%B3%B0.mp3?key=714a82ef7a048ec3fb0158857b1c2f00_694472778"
import requests
data=requests.get(url).content
with open("1.mp3","wb") as f:
f.write(data)
print("over...")
学习编程中的Ben 发表于 2023-1-3 19:56
大佬们,救命啊!!!!
下载的mp3可以正常收听测试over...... suchocolate 发表于 2023-1-4 10:04
把html码源文件保存一下,看看有没有你说的document,有可能是浏览器渲染出来的,实际直接get不到。
人造人大佬已经给我解决完了 @人造人 大佬,回一下
@人造人 本帖最后由 阿奇_o 于 2023-1-4 11:23 编辑
似乎没啥难度,直来直去,即可
import requests, re
response = requests.get('https://www.woyaotingshu.com/play/5440-0-1.html')
# response.text# 看看,直接就有播放器的请求地址
html = response.text
ym = 'https://www.woyaotingshu.com'
url_jplayer = re.findall('<iframe .*?src="(/jplayer.*?)" width', html)
res = requests.get(ym + url_jplayer)
# res.text# 再看看,MP3音频资源url,也有
mp3 = re.findall('{mp3:"(http://.*?)",', res.text)
res_mp3 = requests.get(mp3)
res_mp3.headers # Content-Type 就是音频资源(MP3)
{'Content-Type': 'audio/mpeg', 'Last-Modified': 'Tue, 04 Jan 2011 16:00:00 GMT', 'Accept-Ranges': 'bytes', 'ETag': '"080b87028accb1:0"', 'Server': 'Microsoft-IIS/8.5', 'X-Powered-By': 'ASP.NET', 'Date': 'Wed, 04 Jan 2023 03:01:22 GMT', 'Content-Length': '4405125'}
# 保存MP3
with open('001第1篇第1集第01章_罗峰.mp3', 'wb') as f:
f.write(res_mp3.content)
@人造人 人造人 发表于 2023-1-3 19:05
非要给我最佳吗?上面好多人也给你解决了问题,你也可以设置他们最佳的,^_^
不过为什么你@我,我没有收到 ...
你最先给我答案的,当让要给你了。
实在很感谢,我的一个巨大项目在你的帮助下已经算完成一半!
能完整趴下一本小说了!
学习编程中的Ben 发表于 2023-1-5 19:35
你最先给我答案的,当让要给你了。
实在很感谢,我的一个巨大项目在你的帮助下已经算完成一半!
能完整 ...
^_^
页:
[1]