urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
random.seed(datetime.datetime.now())
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div", {"id":"bodyContent"}).findAll("a",href = re.compile("^(/wiki/)((?!:).)*$"))
getLinks('http://en.wikipedia.org')
OS 是 Linux。上面的脚本吐出一个"urllib.error.URLError: "。查看了我在 google 上发现的解决此问题的多次尝试,但其中 none 解决了我的问题(尝试的解决方案包括更改环境变量并将名称服务器 8.8.8.8 添加到我的 resolv.conf 文件)。
您应该使用有效的 url 调用 getLinks()
:
>>> getLinks('/wiki/Main_Page')
此外,在你的函数中,你还应该在将响应内容传递给BeautifulSoup
之前调用.read()
来获取响应内容:
>>> html = urlopen("http://en.wikipedia.org" + articleUrl).read()
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
random.seed(datetime.datetime.now())
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div", {"id":"bodyContent"}).findAll("a",href = re.compile("^(/wiki/)((?!:).)*$"))
getLinks('http://en.wikipedia.org')
OS 是 Linux。上面的脚本吐出一个"urllib.error.URLError: "。查看了我在 google 上发现的解决此问题的多次尝试,但其中 none 解决了我的问题(尝试的解决方案包括更改环境变量并将名称服务器 8.8.8.8 添加到我的 resolv.conf 文件)。
您应该使用有效的 url 调用 getLinks()
:
>>> getLinks('/wiki/Main_Page')
此外,在你的函数中,你还应该在将响应内容传递给BeautifulSoup
之前调用.read()
来获取响应内容:
>>> html = urlopen("http://en.wikipedia.org" + articleUrl).read()