Python read page from URL? Better documentation?

丶灬走出姿态 提交于 2019-12-11 08:08:26

问题


I'm having quite a bit of trouble with Python's documentation. Is there anything like the Mozilla Developer Network for it?

I'm doing a Python puzzle website and I need to be able to read the content of the page. I saw the following posted on a site:

import urllib2

urlStr = 'http://www.python.org/'
try:
  fileHandle = urllib2.urlopen(urlStr)
  str1 = fileHandle.read()
  fileHandle.close()
  print ('-'*50)
  print ('HTML code of URL =', urlStr)
  print ('-'*50)
except IOError:
  print ('Cannot open URL %s for reading' % urlStr)
  str1 = 'error!'

print (str1)

It keeps saying that there is no urllib2 module.

The Python documentation says

The urllib module has been split into parts and renamed in Python 3.0 to urllib.request, urllib.parse, and urllib.error. The 2to3 tool will automatically adapt imports when converting your sources to 3.0. Also note that the urllib.urlopen() function has been removed in Python 3.0 in favor of urllib2.urlopen().

I tried importing urllib.request too, but it ssays urllib 2 is defined... WTF is going on here?

Version 3.2.2


回答1:


The documentation you were probably referencing was the Python 2 documentation for urllib2. The documentation you should probably be using is the Python 3 documentation for urllib.request.




回答2:


Using urllib.request.open(), as recommended in Dive into Python 3...

Python 3.2.1 (default, Jul 24 2011, 22:21:06) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib.request
>>> urlStr = 'http://www.python.org/'
>>> fileHandle = urllib.request.urlopen(urlStr)
>>> print(fileHandle.read()[:100])
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm'


来源:https://stackoverflow.com/questions/7617661/python-read-page-from-url-better-documentation

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!