Berikut ini adalah cara kerja saat saya menempelkannya di browser:
http://www.somesite.com/details.pl?urn=2344
Tetapi ketika saya mencoba membaca URL dengan Python tidak ada yang terjadi:
link = 'http://www.somesite.com/details.pl?urn=2344'
f = urllib.urlopen(link)
myfile = f.readline()
print myfile
Apakah saya perlu menyandikan URL, atau adakah sesuatu yang tidak saya lihat?
requests
Modul merek baru , penggunaannya yelds ke Kode yang lebih Pythonic.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'
Sepertinya tidak ada fungsi urlopen di python 3.5. Apakah sudah diganti namanya? EDIT: Cuplikan dalam jawaban di bawah menyelesaikan:from urllib.request import urlopen
urlib
paket melihat beberapa refactoring dan perubahan API. Saya akan memperbarui jawaban untuk menekankan pada Python 2.Bagi
python3
pengguna, untuk menghemat waktu, gunakan kode berikut,from urllib.request import urlopen link = "https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html" f = urlopen(link) myfile = f.read() print(myfile)
Saya tahu ada utas berbeda untuk kesalahan:,
Name Error: urlopen is not defined
tetapi saya pikir ini mungkin menghemat waktu.sumber
Solusi dengan bekerja dengan Python 2.X dan Python 3.X memanfaatkan pustaka kompatibilitas Python 2 dan 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)
sumber
Tak satu pun dari jawaban ini sangat bagus untuk Python 3 (diuji pada versi terbaru pada saat posting ini).
Beginilah cara Anda melakukannya ...
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)
Di atas adalah untuk konten yang mengembalikan 'utf-8'. Hapus .decode ('utf-8') jika Anda ingin python "menebak encoding yang sesuai".
Dokumentasi: https://docs.python.org/3/library/urllib.request.html#module-urllib.request
sumber
Kita bisa membaca konten html website seperti di bawah ini:
from urllib.request import urlopen response = urlopen('http://google.com/') html = response.read() print(html)
sumber
#!/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
sumber
URL harus berupa string:
import urllib link = "http://www.somesite.com/details.pl?urn=2344" f = urllib.urlopen(link) myfile = f.readline() print myfile
sumber
Saya menggunakan kode berikut:
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()
sumber
# 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()
sumber
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)
sumber
Anda dapat menggunakan perpustakaan
requests
danbeautifulsoup
untuk membaca data di situs web. Instal saja kedua pustaka ini dan ketik kode berikut.import requests import bs4 help(requests) help(bs4)
Anda akan mendapatkan semua informasi yang Anda butuhkan tentang perpustakaan.
sumber
help
digunakan untuk melihat dokumentasi dari modul / kelas / fungsi yang diberikan. Saya pikir pertanyaan itu menanyakan cara untuk melihat konten tanggapan