python - 错误引发 ValueError("unknown url type: %r" % self.full_url)
问题描述
我是python的初学者,我打算通过做项目来学习python,
我正在编写一个脚本来从谷歌搜索结果中抓取今天的温度,我从各个网站获得了这些代码行
这是我的代码
from bs4 import BeautifulSoup as soup
import requests
from urllib.request import urlopen , Request
myurl="https://www.google.com/search?q=temperature+today"
req = Request(
myurl,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) >AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/35.0.1916.47 Safari/537.36' }
)
f = Request(req)
print(f.read().decode('utf-8'))
产生错误
raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: 'urllib.request.Request object at 0x004BF610'
笔记
我的假设Request
是一样的,urllib.request.urlopen
因为在开始部分,我已经导入了urllib.request.urlopen
库,因为Request
Pl 提供了为什么不是这种情况的原因
尝试调试
所以调试这个而不是
f = Request(req)
print(f.read().decode('utf-8'))
我写了(在 req=..... 之后)
print(req)
tt给出了一个输出
<urllib.request.Request object at 0x0023F610>
我无法理解错误请帮我调试一下
另请注意-我的问题与此ValueError("unknown url type: %r" % self.full_url) 不同
解决方案
您正在使用先前的 Request 对象作为参数创建一个新的 Request 对象。相反,您想urlopen()
使用您的 Request 对象进行调用。像这样:
import requests
from urllib.request import urlopen, Request
myurl="https://www.google.com/search?q=temperature+today"
req = Request(
myurl,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) >AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
})
f = urlopen(req)
print(f.read().decode('utf-8'))