Làm cách nào để có được python nhận nội dung của trang HTTP? Cho đến nay tất cả những gì tôi có là yêu cầu và tôi đã nhập http.client.Python 3 Nhận trang HTTP
Trả lời
Sử dụng urllib.request
có lẽ là cách dễ nhất để làm điều này:
import urllib.request
f = urllib.request.urlopen("http://stackoverflow.com")
print(f.read())
Thêm mã này có thể định dạng dữ liệu cho việc đọc của con người:
text = f.read().decode('utf-8')
Bạn cũng có thể sử dụng thư viện yêu cầu. Tôi thấy điều này đặc biệt hữu ích vì nó dễ dàng hơn để truy xuất và hiển thị tiêu đề HTTP.
import requests
source = 'http://www.pythonlearn.com/code/intro-short.txt'
r = requests.get(source)
print('Display actual page\n')
for line in r:
print (line.strip())
print('\nDisplay all headers\n')
print(r.headers)
Đây có phải là Python 3 không? –
Điều này có hiệu quả với Python 3 không? –
Cách sử dụng built-in module "http.client"
import http.client
connection = http.client.HTTPSConnection("api.bitbucket.org", timeout=2)
connection.request('GET', '/2.0/repositories')
response = connection.getresponse()
print('{} {} - a response on a GET request by using "http.client"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
Kết quả:
200 OK - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
Cách sử dụng thư viện của bên thứ ba "yêu cầu"
response = requests.get("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "requests"'.format(response.status_code, response.reason))
content = response.content.decode('utf-8')
print(content[:100], '...')
Kết quả:
200 OK - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
Cách sử dụng built-in module "urllib.request"
response = urllib.request.urlopen("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "urllib.request"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
Kết quả:
200 OK - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
Ghi chú:
- Python 3.4
- Kết quả từ các câu trả lời rất có thể sẽ được chỉ khác nhau nội dung
https://stackoverflow.com/a/41862742/8501970 Kiểm tra này ra để thay thế. Của nó về cùng một vấn đề bạn có và điều này là rất đơn giản và rất ít dòng mã. Điều này chắc chắn đã giúp tôi khi tôi nhận ra python3 không thể sử dụng chỉ đơn giản là get_page.
Đây là giải pháp thay thế tốt. (hy vọng điều này sẽ giúp, chúc mừng!)
- 1. Nhận đối số HTTP GET bằng Python
- 2. Http Xác thực trong dấu trang Firefox 3
- 3. Làm cách nào để nhận địa chỉ IP của trang web bằng Python 3.x?
- 4. Rails 3 trả về HTTP 406 Không được chấp nhận?
- 5. Python: Nhận tiêu đề HTTP từ cuộc gọi urllib2.urlopen?
- 6. Nhận URL trang chủ đầy đủ tại Kohana 3
- 7. Có thể nhận API Bloomberg vào Python 3 không?
- 8. Nhận tệp JS qua HTTPS từ trang HTTP
- 9. Cách nhanh nhất để nhận HTTP bằng Python là gì?
- 10. Yêu cầu HTTP CHÍNH trong Rails 3
- 11. Python 3 hosting
- 12. Phân lớp các kiểu nội trang trong Python 2 và Python 3
- 13. Python 3, urllib POST gửi
- 14. Python trong OpenOffice 3
- 15. HTTP Authentication trong Python
- 16. Unescape Python Strings Từ HTTP
- 17. Python 3 setuptools trên mac
- 18. python 3 in emacs
- 19. ASP.NET MVC 3 Trang đích
- 20. Python 2 so với Python 3 - định dạng urllib
- 21. Bootstrap 3 và Chân trang Chú ý
- 22. Nhận trang được tạo bằng Javascript bằng Python
- 23. Rails 3 nhận yêu cầu referrer
- 24. python 2 và python 3 __cmp__
- 25. Chuyển hướng một trang http đến https
- 26. Nhận giới thiệu HTTP khi chuyển hướng
- 27. Http POST Curl trong python
- 28. Matplotlib cho Python 3 và Linux
- 29. Giao diện cổng Web bằng Python 3
- 30. Lỗi trạng thái HTTP 403 từ glassfish 3 khi cố gắng truy cập trang đăng nhập được thực hiện
Đã thử và tôi đã nhận được đối tượng "AttributeError: 'module' không có thuộc tính 'urlopen'" – BiscottiGummyBears
Thực ra, mô-đun chính xác để nhập là urllib2. –
Xin lỗi, tôi vừa nhận thấy rằng bạn đang sử dụng Python 3. Tôi đã cập nhật ví dụ của mình để khớp. –