我正在使用Python 3.1,如果有帮助的话。
无论如何,我正在尝试获取this网页的内容。我用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'
>>>
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())
答案 0 :(得分:37)
这些最好的方法是使用'requests'库:
import requests
response = requests.get('http://hiscore.runescape.com/index_lite.ws?player=zezima')
print (response.status_code)
print (response.content)
答案 1 :(得分:24)
因为您使用的是Python 3.1,所以需要使用新的Python 3.1 APIs。
尝试:
urllib.request.urlopen('http://www.python.org/')
或者,看起来您正在使用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')
假设您已经安装了六个,它可以在Python 2和Python 3上运行。
答案 2 :(得分:7)
如果你问我。试试这个
import urllib2
resp = urllib2.urlopen('http://hiscore.runescape.com/index_lite.ws?player=zezima')
并阅读正常的方式,即
page = resp.read()
祝你好运
答案 3 :(得分:4)
Mechanize是一个很好的“像浏览器一样”的软件包。
答案 4 :(得分:1)
您可以使用urlib2并自行解析HTML。
或者尝试美丽的汤为您做一些解析。
答案 5 :(得分:0)
与Python 2.X和Python 3.X一起使用的解决方案:
try:
# For Python 3.0 and later
from urllib.request import urlopen
except ImportError:
# Fall back to Python 2's urllib2
from urllib2 import urlopen
url = 'http://hiscore.runescape.com/index_lite.ws?player=zezima'
response = urlopen(url)
data = str(response.read())
答案 6 :(得分:0)
假设您要获取网页的内容。以下代码可以做到:
# -*- coding: utf-8 -*-
# python
# example of getting a web page
from urllib import urlopen
print urlopen("http://xahlee.info/python/python_index.html").read()
答案 7 :(得分:0)
您还可以使用faster_than_requests软件包。这非常简单快捷:
import faster_than_requests as r
content = r.get2str("http://test.com/")
看一下这个比较: