urllib.error.URLError:<urlopen error =“” unknown =“” url =“”类型:=“” https =“”>

时间:2019-02-28 13:02:58

标签: python web-scraping anaconda urllib

您好,我正在尝试学习网络抓取。我在Windows 10中安装了Anaconda3。Conda版本4.5.12。 Python版本3.7.1。

我写了以下脚本,产生了上述错误。

import bs4
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as request
with request('https://google.com') as response:
    page_html = response.read()
page_soup = soup(page_html, "html.parser")
print(page_soup)

错误是来自此行:

with request('https://google.com') as response:
...
...
raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: https>

但是,当我打开Anaconda提示符并从上面的脚本逐行执行时,它运行正常。
谁能帮助我了解问题出在哪里?如何在不出现此错误的情况下从控制台运行脚本?

5 个答案:

答案 0 :(得分:0)

也许可行,

response= request('https://google.com')
page_html = response.read() if response else ""
page_soup = soup(page_html, "html.parser")
print(page_soup)

答案 1 :(得分:0)

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

这是允许使用未经验证的SSL的方法

答案 2 :(得分:0)

尝试以下代码:

import bs4
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen, Request
response = urlopen('https://www.google.com')
page_html = response.read()
page_soup = soup(page_html, "html.parser")
print(page_soup)

答案 3 :(得分:0)

我通过重新安装anaconda库解决了该问题。在安装过程中,我选择设置PATH变量,尽管不建议这样做。 (因此我没有第一次设置PATH)因此,基本上我忽略了建议。之后,它起作用了。我不知道是什么原因造成了第一次。但是现在可以了。

答案 4 :(得分:0)

在安装带有建议设置的Anaconda的emsdk时,我遇到类似的问题。

我这样解决了:

打开Anaconda Navigator>单击环境>选择基本(根)>单击播放图标>  选择打开终端>导航到脚本文件夹>运行脚本