Получить содержимое веб-страницы с помощью Python? - PullRequest
45 голосов
/ 04 декабря 2009

Я использую Python 3.1, если это поможет.

В любом случае я пытаюсь получить содержимое этой веб-страницы. Я погуглил немного и пробовал разные вещи, но они не работали. Я предполагаю, что это должно быть легкой задачей, но ... я не могу ее получить. : /.

Результаты 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'
>>> 

Решение 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())

Ответы [ 7 ]

39 голосов
/ 09 мая 2014

Лучший способ сделать это сегодня - это использовать библиотеку запросов:

import requests
response = requests.get('http://hiscore.runescape.com/index_lite.ws?player=zezima')
print (response.status_code)
print (response.content)
25 голосов
/ 04 декабря 2009

Поскольку вы используете Python 3.1, вам нужно использовать новые API Python 3.1 .

Попытка:

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.

7 голосов
/ 14 ноября 2013

Если вы спросите меня. попробуйте это

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

и читайте как обычно, т.е.

page = resp.read()

Удачи, хотя

4 голосов
/ 04 декабря 2009

Mechanize - отличный пакет для "работы в качестве браузера", если вы хотите обрабатывать состояние файлов cookie и т. Д.

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

1 голос
/ 04 декабря 2009

Вы можете использовать urlib2 и самостоятельно анализировать HTML.

Или попробуйте Beautiful Soup , чтобы сделать для вас часть разбора.

0 голосов
/ 10 сентября 2018

Предположим, вы хотите получить содержимое веб-страницы. Следующий код делает это:

# -*- coding: utf-8 -*-
# python

# example of getting a web page

from urllib import urlopen
print urlopen("http://xahlee.info/python/python_index.html").read()
0 голосов
/ 18 июля 2016

Решение для работы с 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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...