在python requests.get()方法中获取错误

时间:2018-04-04 21:02:14

标签: python request

import string
import requests
from bs4 import BeautifulSoup

song_name = input('enter song name : ')
url = 'https://search.azlyrics.com/search.php?q='  + (string.capwords(song_name)).replace(' ', '+')
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')

for a in soup.find_all('a'):
    href = a.get('href')
    if href.find('https') != -1:
        if href.find('lyrics/') != -1:
            print(href)
            res = requests.get(href)
            break

当我将参数href传递给requests.get(href)时,它会抛出错误。当我传递一个常量字符串,例如res = requests.get('https://google.co.in')时,它不会抛出任何错误。

我检查了两个变量的类型是否相同

print(type(href))
<class 'str'>

print(type('https://google.co.in'))
<class 'str'>

两者都属于同一类型,为什么我会收到错误。

输入 输入歌曲名称:上帝的计划

1 个答案:

答案 0 :(得分:0)

您的href可能不是完全限定的网址。

您可以查看href是以“http”还是“www”开头。

如果没有,那么它可能是#foofoo/bar.html形式,在这种情况下,您只需将其附加到当前页面的URL

的末尾即可