Last active
August 22, 2022 22:44
-
-
Save TwiN/8e8f928e5b0431e96b60d2caca40556d to your computer and use it in GitHub Desktop.
Python equivalent of PHP's file_get_contents on websites (NOT LOCAL FILES)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib2,cookielib | |
''' | |
Function that returns the source from the target url | |
@param url | |
''' | |
def file_get_contents(url): | |
url = str(url).replace(" ", "+") # just in case, no space in url | |
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', | |
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', | |
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', | |
'Accept-Encoding': 'none', | |
'Accept-Language': 'en-US,en;q=0.8', | |
'Connection': 'keep-alive'} | |
req = urllib2.Request(url, headers=hdr) | |
try: | |
page = urllib2.urlopen(req) | |
return page.read() | |
except urllib2.HTTPError, e: | |
print e.fp.read() | |
return '' | |
#example | |
print file_get_contents("https://twinnation.org/api/v1/ip") |
Thanks.
Updated for Python 3.*:
# some packages were renamed in Python 3
import urllib.request as urllib2
import http.cookiejar as cookielib
def file_get_contents(url):
url = str(url).replace(" ", "+") # just in case, no space in url
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
req = urllib2.Request(url, headers=hdr)
try:
page = urllib2.urlopen(req)
return page.read()
except urllib2.HTTPError as e:
print(e.fp.read())
return ''
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you, this file helped me! :)