patternpythonCritical
What are the differences between the urllib, urllib2, urllib3 and requests module?
Viewed 0 times
urllib3theurllib2differencesandwhatbetweenmoduleareurllib
Problem
In Python, what are the differences between the
urllib, urllib2, urllib3 and requests modules? Why are there three? They seem to do the same thing...Solution
I know it's been said already, but I'd highly recommend the
If you've used languages other than python, you're probably thinking
First, it supports a fully restful API, and is as easy as:
Regardless of whether GET / POST, you never have to encode parameters again, it simply takes a dictionary as an argument and is good to go:
Plus it even has a built in JSON decoder (again, I know
Or if your response data is just text, use:
This is just the tip of the iceberg. This is the list of features from the requests site:
requests Python package.If you've used languages other than python, you're probably thinking
urllib and urllib2 are easy to use, not much code, and highly capable, that's how I used to think. But the requests package is so unbelievably useful and short that everyone should be using it.First, it supports a fully restful API, and is as easy as:
import requests
resp = requests.get('http://www.mywebsite.com/user')
resp = requests.post('http://www.mywebsite.com/user')
resp = requests.put('http://www.mywebsite.com/user/put')
resp = requests.delete('http://www.mywebsite.com/user/delete')Regardless of whether GET / POST, you never have to encode parameters again, it simply takes a dictionary as an argument and is good to go:
userdata = {"firstname": "John", "lastname": "Doe", "password": "jdoe123"}
resp = requests.post('http://www.mywebsite.com/user', data=userdata)Plus it even has a built in JSON decoder (again, I know
json.loads() isn't a lot more to write, but this sure is convenient):resp.json()Or if your response data is just text, use:
resp.textThis is just the tip of the iceberg. This is the list of features from the requests site:
- International Domains and URLs
- Keep-Alive & Connection Pooling
- Sessions with Cookie Persistence
- Browser-style SSL Verification
- Basic/Digest Authentication
- Elegant Key/Value Cookies
- Automatic Decompression
- Unicode Response Bodies
- Multipart File Uploads
- Connection Timeouts
- .netrc support
- List item
- Python 2.7, 3.6—3.9
- Thread-safe.
Code Snippets
import requests
resp = requests.get('http://www.mywebsite.com/user')
resp = requests.post('http://www.mywebsite.com/user')
resp = requests.put('http://www.mywebsite.com/user/put')
resp = requests.delete('http://www.mywebsite.com/user/delete')userdata = {"firstname": "John", "lastname": "Doe", "password": "jdoe123"}
resp = requests.post('http://www.mywebsite.com/user', data=userdata)resp.json()Context
Stack Overflow Q#2018026, score: 890
Revisions (0)
No revisions yet.