【问题标题】:Python CURL output different from original htmlPython CURL 输出不同于原始 html
【发布时间】:2021-03-31 04:48:32
【问题描述】:

我正在尝试从 Spotify 网站获取 HTML 正文。但是在我将它输出到文件后,由于某种原因,结果与原始 HTML 不同(这是一个完全不同的站点)。

curl https://open.spotify.com/artist/4npEfmQ6YuiwW1GpUmaq3F > test.html

最后,我会在 python 中做,所以如果有人知道如何绕过这个页面重定向,请帮助。

【问题讨论】:

    标签: python html curl cmd


    【解决方案1】:

    Spotify 识别出您使用了不受支持的“浏览器”, Curl 不是浏览器,所以不要认为它会像浏览器一样 您需要通过添加正确的标题来“假装”您使用真实的浏览器, 类似:

    curl 'https://open.spotify.com/artist/4npEfmQ6YuiwW1GpUmaq3F' \
    -X 'GET' \
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
    -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15'
    

    【讨论】:

    • 你认为python中的一些lib可以吗?
    • 是的,您可以将 Selenium 与 chrome 驱动程序一起使用,这将充当真正的浏览器,这是一个有用的问题stackoverflow.com/questions/42478591/…
    • 我知道使用 selenium 网络驱动器是可能的,但这会打开浏览器......或者也可以在后台执行它?
    • 是的。查看建议的解决方案here
    【解决方案2】:

    首先你需要在cmd中使用“pip install requests”安装请求

    接下来你可以使用它(如果需要,你也可以添加带有用户代理的标题)。

    import requests
    url="google.com" #for example
    headers={"User-Agent":"Apple Web Kit"}#adding user agent
    html=requests.get(url,headers=headers).content.decode()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2016-06-30
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多