使用Python获取网页内容?

And*_*rew 48 python python-3.x

我正在使用Python 3.1,如果有帮助的话.

无论如何,我正在尝试获取网页的内容.我用Google搜索了一下并尝试了不同的东西,但它们没有用.我猜这应该是一件容易的事,但是......我无法得到它.:/.

urllib,urllib2的结果:

>>> import urllib2
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import urllib2
ImportError: No module named urllib2
>>> import urllib
>>> urllib.urlopen("http://www.python.org")
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    urllib.urlopen("http://www.python.org")
AttributeError: 'module' object has no attribute 'urlopen'
>>> 
Run Code Online (Sandbox Code Playgroud)

Python 3解决方案

谢谢你,杰森.:d.

import urllib.request
page = urllib.request.urlopen('http://services.runescape.com/m=hiscore/ranking?table=0&category_type=0&time_filter=0&date=1519066080774&user=zezima')
print(page.read())
Run Code Online (Sandbox Code Playgroud)

Jon*_*ley 39

这一天最好的方法是使用'requests'库:

import requests
response = requests.get('http://hiscore.runescape.com/index_lite.ws?player=zezima')
print (response.status_code)
print (response.content)
Run Code Online (Sandbox Code Playgroud)


Jas*_*mbs 26

因为您使用的是Python 3.1,所以需要使用新的Python 3.1 API.

尝试:

urllib.request.urlopen('http://www.python.org/')
Run Code Online (Sandbox Code Playgroud)

或者,看起来您正在使用Python 2示例.用Python 2编写,然后使用2to3工具进行转换.在Windows上,2to3.py位于\ python31\tools\scripts中.其他人可以指出在其他平台上找到2to3.py的位置吗?

编辑

这些天,我使用六个编写Python 2和3兼容代码.

from six.moves import urllib
urllib.request.urlopen('http://www.python.org')
Run Code Online (Sandbox Code Playgroud)

假设您已安装了六个,则可以在Python 2和Python 3上运行.

  • 该死的,python 3开始成为一个问题:一个人不能只复制粘贴第一个堆栈溢出的答案,并期望它再次工作! (2认同)

Olu*_*ith 8

如果你问我.试试这个

import urllib2
resp = urllib2.urlopen('http://hiscore.runescape.com/index_lite.ws?player=zezima')
Run Code Online (Sandbox Code Playgroud)

并阅读正常的方式即

page = resp.read()
Run Code Online (Sandbox Code Playgroud)

祝你好运


Joe*_*erg 5

如果你想处理 cookie 状态等,Mechanize是一个很棒的包,可以“像浏览器一样工作”。

http://wwwsearch.sourceforge.net/mechanize/