30/09/2018, 18:52

Hỏi về urllib.urlopen trong python

Mình đang cần bắt link trong trang chiasenhac nhưng khi mở đường dẫn bằng urlopen để nhận HTML thì khi print nội dung thì chỉ nhận được
<addinfourl at 48213968 whose fp = <socket._fileobject object at 0x02E14070>>

stackoverflow.com
Alan

Python error when using urllib.open

python, urllib
asked by Alan on 07:56PM - 01 Mar 09

theo mình tìm thấy thì mình nhận được một object. Lúc mở bằng .read() thì nhận được nội dung không giống như khi F12 trên trình duyệt? Tại sao vậy mọi người?

htl@PyMI.vn viết 21:09 ngày 30/09/2018

https://docs.python.org/2/library/urllib.html#urllib.urlopen

If all went well, a file-like object is returned.This supports the following methods: read(), readline(), readlines(), fileno(), close(), info(), getcode() and geturl()…

Như vậy kết quả của urllib.urlopen() là 1 file object, hỗ trợ các method trên.
Kết quả của file-object.read() là gì thì bạn đọc link trên nhé.

PS: Mình thích dùng requests hơn urllib hay urllib2. Bạn thử dùng xem sao

Minh Hoàng viết 21:02 ngày 30/09/2018

Vậy có cách nào để nhận được file source html giống như trên trình duyệt không?
Vì khi đọc file object thì ko có thông tin gì về đường link mà mình cần lấy cả

Le Van Khai viết 21:02 ngày 30/09/2018

Mình dùng requests:
https://github.com/khailevn/python-data-mining/blob/master/itunes.py

htl@PyMI.vn viết 20:59 ngày 30/09/2018

html dài quá nên mình paste qua đây. Bạn vào xem nhé. Dùng requests. get rồi thì respond.text là ra html source code

nbviewer.ipython.org

Jupyter Notebook Viewer

Check out this Jupyter notebook!

Minh Hoàng viết 20:53 ngày 30/09/2018

Cảm ơn các bạn mình vừa thử cái request, quá tiện. Không biết nó có điểm yếu gì so với urllib không nhỉ?

htl@PyMI.vn viết 21:04 ngày 30/09/2018
lmgtfy.com

LMGTFY

LMGTFY

Bài liên quan
0