首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python从Pandora中提取“喜欢”的歌曲

使用python从Pandora中提取“喜欢”的歌曲
EN

Stack Overflow用户
提问于 2013-07-28 03:03:29
回答 1查看 396关注 0票数 1

我正在尝试使用Python的urllib2来提取我在Pandora中“喜欢”的曲目的信息。当比较以下代码产生的HTML和通过Chrome的inspect元素看到的HTML时,我得到了不一致的地方:

代码语言:javascript
复制
import urllib2

headers={ 'User-Agent' : 'Mozilla/5.0' }

url='http://www.pandora.com/profile/likes/myusername'

request=urllib2.Request(url,None,headers)
response = urllib2.urlopen(request)
html = response.read()

我想这可能是因为缺少身份验证,尽管我仍然可以加载使用Chrome的匿名模式注销的相同页面。

因此,我添加了以下几行代码,以尝试对我的请求使用基本身份验证:

代码语言:javascript
复制
SERVER='pandora.com'
authinfo = urllib2.HTTPPasswordMgrWithDefaultRealm()
authinfo.add_password(None, SERVER, "login", "password")
handler=urllib2.HTTPBasicAuthHandler(authinfo)
myopener=urllib2.build_opener(handler)
opened=urllib2.install_opener(myopener)

headers={ 'User-Agent' : 'Mozilla/5.0' }

url='http://www.pandora.com/profile/likes/chris.r.armstrong'

request=urllib2.Request(url,None,headers)
response = urllib2.urlopen(request)
html = response.read()

仍然得不到正确的HTML响应。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-30 10:42:10

您在浏览器中看到的DOM (HTML页面)并不是HTTP请求的有效负载。一旦浏览器发出HTTP请求,就会发生许多转换,具体取决于页面的复杂程度。在基本级别,解析器可以按照HTML5解析算法的要求对内容进行重新排序和/或重新组织。然后,JS脚本和XMLHttpRequests将修改DOM并向其添加内容。

如果您确实需要在浏览器中看到的DOM,那么您可能希望使用webdriver来获取浏览器所看到的内容,而不仅仅是HTTP客户端所看到的内容。

希望能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17901407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档