Когда я вставляю его в браузер, работает следующее:
http://www.somesite.com/details.pl?urn=2344
Но когда я пытаюсь прочитать URL-адрес с помощью Python, ничего не происходит:
link = 'http://www.somesite.com/details.pl?urn=2344'
f = urllib.urlopen(link)
myfile = f.readline()
print myfile
Нужно ли мне кодировать URL-адрес, или я чего-то не вижу?
requests
модуль, его использование приводит к большему количеству Pythonic Code.Traceback (most recent call last): File "/home/lars/parser.py", line 9, in <module> f = urllib.urlopen(link) AttributeError: module 'urllib' has no attribute 'urlopen'
Кажется, в python 3.5 нет функции urlopen. Его переименовали? РЕДАКТИРОВАТЬ: фрагмент в ответе ниже решает:from urllib.request import urlopen
urlib
пакет претерпел некоторые изменения в рефакторинге и API. ЯДля
python3
пользователей, чтобы сэкономить время, используйте следующий код,from urllib.request import urlopen link = "https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html" f = urlopen(link) myfile = f.read() print(myfile)
Я знаю, что есть разные потоки ошибок:,
Name Error: urlopen is not defined
но подумал, что это может сэкономить время.источник
Решение, работающее с Python 2.X и Python 3.X, использует библиотеку совместимости Python 2 и 3
six
:from six.moves.urllib.request import urlopen link = "http://www.somesite.com/details.pl?urn=2344" response = urlopen(link) content = response.read() print(content)
источник
Ни один из этих ответов не очень хорош для Python 3 (проверено на последней версии на момент написания этого сообщения).
Вот как вы это делаете ...
import urllib.request try: with urllib.request.urlopen('http://www.python.org/') as f: print(f.read().decode('utf-8')) except urllib.error.URLError as e: print(e.reason)
Вышеупомянутое относится к содержимому, которое возвращает "utf-8". Удалите .decode ('utf-8'), если вы хотите, чтобы python «угадывал подходящую кодировку».
Документация: https://docs.python.org/3/library/urllib.request.html#module-urllib.request
источник
Мы можем прочитать html-контент веб-сайта, как показано ниже:
from urllib.request import urlopen response = urlopen('http://google.com/') html = response.read() print(html)
источник
#!/usr/bin/python # -*- coding: utf-8 -*- # Works on python 3 and python 2. # when server knows where the request is coming from. import sys if sys.version_info[0] == 3: from urllib.request import urlopen else: from urllib import urlopen with urlopen('https://www.facebook.com/') as \ url: data = url.read() print data # When the server does not know where the request is coming from. # Works on python 3. import urllib.request user_agent = \ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7' url = 'https://www.facebook.com/' headers = {'User-Agent': user_agent} request = urllib.request.Request(url, None, headers) response = urllib.request.urlopen(request) data = response.read() print data
источник
URL-адрес должен быть строкой:
import urllib link = "http://www.somesite.com/details.pl?urn=2344" f = urllib.urlopen(link) myfile = f.readline() print myfile
источник
Я использовал следующий код:
import urllib def read_text(): quotes = urllib.urlopen("https://s3.amazonaws.com/udacity-hosted-downloads/ud036/movie_quotes.txt") contents_file = quotes.read() print contents_file read_text()
источник
# retrieving data from url # only for python 3 import urllib.request def main(): url = "http://docs.python.org" # retrieving data from URL webUrl = urllib.request.urlopen(url) print("Result code: " + str(webUrl.getcode())) # print data from URL print("Returned data: -----------------") data = webUrl.read().decode("utf-8") print(data) if __name__ == "__main__": main()
источник
from urllib.request import urlopen # if has Chinese, apply decode() html = urlopen("https://blog.csdn.net/qq_39591494/article/details/83934260").read().decode('utf-8') print(html)
источник
Вы можете использовать
requests
иbeautifulsoup
библиотеки для чтения данных на веб - сайте. Просто установите эти две библиотеки и введите следующий код.import requests import bs4 help(requests) help(bs4)
Вы получите всю необходимую информацию о библиотеке.
источник
help
используется для просмотра документации по данному модулю / классу / функции. Я думаю, что этот вопрос предлагает способ просмотреть содержание ответа