如何用BeautifulSoup理解不同操作系统的不同结果?

时间:2015-08-17 09:31:44

标签: python-3.x unicode cmd beautifulsoup

Web Scraping的新手。当我使用Linux(Ubuntu 15.04,Python3.4.3)时,程序运行正常。但是,当我在Windows(WIN 7,Python3.4.3)中构建相同的代码时,它出现了错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 2055: illegal multibyte sequence

代码:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
pages = set()
def getLinks(pageUrl):
    global pages
    html = urlopen("https://en.wikipedia.org"+pageUrl)
    bsObj = BeautifulSoup(html)
    try:
        print(bsObj.h1.get_text())
        print (bsObj.find(id="mw-content-text").find_all("p")[0])
    except AttributeError:
        print("This page is missing something! No worries though!")

    for link in bsObj.find_all("a",href=re.compile('^(/wiki/)')):
        if "href" in link.attrs:
            if link.attrs["href"] not in pages:
                newPage = link.attrs["href"]
                print("----------------\n"+newPage)
                pages.add(newPage)
                getLinks(newPage) 
getLinks("")

还有一个问题:如果我使用urlopen("https://zh.wikipedia.org"+pageUrl)替换原始细分,程序将以错误结束:urllib.error.URLError: <urlopen error [Errno 101] Network is unreachable>(我试图将上述网站放在我的浏览器上,它效果很好)

0 个答案:

没有答案