您好,我正在尝试学习网络抓取。我在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提示符并从上面的脚本逐行执行时,它运行正常。
谁能帮助我了解问题出在哪里?如何在不出现此错误的情况下从控制台运行脚本?
答案 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>单击环境>选择基本(根)>单击播放图标> 选择打开终端>导航到脚本文件夹>运行脚本