python urllib2可以';无法获得正确的网页

python urllib2可以';无法获得正确的网页,python,beautifulsoup,web-crawler,urllib2,Python,Beautifulsoup,Web Crawler,Urllib2,我正在使用urllib2和beautifulsoup编写一个蜘蛛。但是我遇到了一些问题 我无法正确下载网页。我试过了 GET'http://thesite.html“ wget'http://thesite.html“ curl-O'http://thesite.html“ 在linux终端上,但得到了大量的信息,似乎是错误的编解码器 然后我尝试使用file\u get\u contents('http://thesite.html“)并且也无法获取正确的网页 然后我尝试了urllib2.url

我正在使用urllib2和beautifulsoup编写一个蜘蛛。但是我遇到了一些问题

  • 我无法正确下载网页。我试过了

    GET'http://thesite.html“

    wget'http://thesite.html“

    curl-O'http://thesite.html“

  • 在linux终端上,但得到了大量的信息,似乎是错误的编解码器

  • 然后我尝试使用
    file\u get\u contents('http://thesite.html“)
    并且也无法获取正确的网页

  • 然后我尝试了
    urllib2.urlopen('http://thesite.html“)
    ,无法工作

  • 无法检测编码。
    
    s=urllib2.urlopen('http://thesite.html')
    打印字符检测
    
    和输出
    {'confidence':0.0,'encoding':None}
  • 我还使用urllib.request尝试了python3,我可以得到一个字节字符串,但是当我尝试将这个字节解码为utf-8时,我得到了一条错误消息

  • 有人能帮我吗?如何像web浏览器一样获得正确的网页。

    您正在下载什么?它是文本还是二进制文件,例如图像

    二进制文件可能解释了为什么wget和curl等标准工具返回大量“mass”(mess?),而在这种情况下,
    chardet.detect()
    将返回
    {'confidence':0.0,'encoding':None}

    >>> import urllib2
    >>> import chardet
    
    >>> s = urllib2.urlopen('http://i.stack.imgur.com/uIM9Q.png?s=32&g=1').read()    # your avatar
    >>> chardet.detect(s)
    {'confidence': 0.0, 'encoding': None}
    

    Python 3中的字节字符串是什么样子的?否则,如果您不愿意发布URL、回溯或其他详细信息,也许您可以发布一点该字符串?

    我想您会发现,发布一两条错误消息可能会大大有助于人们理解您的问题。该页面可能会拒绝您的用户代理。试着改变一下。我觉得自己像一个小偷,很难发布细节。不知道细节的人怎么能帮助我呢?非常感谢你给出如此详细的回答。我仍然没有解决这个问题,但我完成了我的工作,我改为爬网另一个网站,没有看到任何编码问题。我不得不说编码是网络爬虫的一个大问题。我将继续讨论这个问题,并尝试给出更多细节。