How to get the webpage with socks5 proxy in python3?
sudo lsof -i:1080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sslocal 1795 root4u IPv4 16233 0t0 TCP localhost:socks
(LISTEN)
sslocal 1795 root5u IPv4 16234 0t0 UDP localhost:socks
An app was listening on localhost:1080,it is ready for curl's socks5
proxy.
The app provided socks5 proxy service is shadowsocks client on my pc.
curl can work with socks proxy in my pc.
target="target_url_youtube"
curl --socks5-hostname 127.0.0.1:1080 $target -o /tmp/sample
The target url can be downloaded with scoks5 proxy in curl.
shadowsocks client--->shadowsocks server--->target_url_youtube
127.0.0.1:1080 1xx.1xx.1xx.1xx:port target_url_youtube
Notice:
All the packages from 127.0.0.1:1080 to 1xx.1xx.1xx.1xx:port is sent and
received by shadowsocks client and server.
curl just sent packages to 127.0.0.1:1080.
Now i want to get the target webpage with socks proxy in python3.
the first try :
import urllib.request
target="target_url_youtubr"
proxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
web = urllib.request.urlopen(target).read()
print(web)
The error info:
sock.connect(sa)
OSError: [Errno 101] Network is unreachable
Notice:
It is no use to write {'sock5': 'localhost:1080'} as {'sock5':
'127.0.0.1:1080'},i have verified it.
the second try:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
socket.socket = socks.socksocket
import urllib.request
target="target_url_youtubr"
print(urllib.request.urlopen('target').read())
error info:
raise BadStatusLine(line)
http.client.BadStatusLine:
The third try:
import socks
import socket
from urllib import request
socks.set_default_proxy(socks.SOCKS5, "localhost", 1080)
socket.socket = socks.socksocket
target="target_url_youtube"
r = request.urlopen(url)
print(r.read())
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:600)
urllib.error.URLError:
Why data packet can't send via localhost:1080 and get the
target_url_youtube's content,but curl can?
How to fix my python3 code for socks5 proxy?
shadowsocks client-->shadowsocks server-->target_url_youtube
127.0.0.1:1080 1xx.1xx.1xx.1xx:port target_url_youtube
`curl --socks5-hostname 127.0.0.1:1080 $target -o /tmp/sample` can do
the job.
why all the three python codes can't do?
How to fix it?
--
https://mail.python.org/mailman/listinfo/python-list
How to get the webpage with socks5 proxy in python3?
sudo lsof -i:1080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sslocal 1795 root4u IPv4 16233 0t0 TCP localhost:socks (LISTEN)
sslocal 1795 root5u IPv4 16234 0t0 UDP localhost:socks
An app was listening on localhost:1080,it is ready for curl's socks5 proxy.
The app provided socks5 proxy service is shadowsocks client on my pc.
curl can work with socks proxy in my pc.
target="target_url_youtube"
curl --socks5-hostname 127.0.0.1:1080 $target -o /tmp/sample
The target url can be downloaded with scoks5 proxy in curl.
shadowsocks client--->shadowsocks server--->target_url_youtube
127.0.0.1:1080 1xx.1xx.1xx.1xx:port target_url_youtube
Notice:
All the packages from 127.0.0.1:1080 to 1xx.1xx.1xx.1xx:port is sent and
received by shadowsocks client and server.
curl just sent packages to 127.0.0.1:1080.
Now i want to get the target webpage with socks proxy in python3.
the first try :
import urllib.request
target="target_url_youtubr"
proxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
web = urllib.request.urlopen(target).read()
print(web)
The error info:
sock.connect(sa)
OSError: [Errno 101] Network is unreachable
Notice:
It is no use to write {'sock5': 'localhost:1080'} as {'sock5':
'127.0.0.1:1080'},i have verified it.
the second try:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
socket.socket = socks.socksocket
import urllib.request
target="target_url_youtubr"
print(urllib.request.urlopen('target').read())
error info:
raise BadStatusLine(line)
http.client.BadStatusLine:
The third try:as Martijn Pieters say in web
[Python3 - Requests with Sock5 proxy ][1]
import socks
import socket
from urllib import request
socks.set_default_proxy(socks.SOCKS5, "localhost", 1080)
socket.socket = socks.socksocket
target="target_url_youtube"
r = request.urlopen(url)
print(r.read())
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:600)
urllib.error.URLError:
Why data packet can't send via localhost:1080 and get the target_url_youtube's
content,but curl can?
How to fix my python3 code for socks5 proxy?
shadowsocks client-->shadowsocks server-->target_url_youtube
127.0.0.1:1080 1xx.1xx.1xx.1xx:port target_url_youtube
`curl --socks5-hostname 127.0.0.1:1080 $target -o /tmp/sample` can do the
job.
why all the three python codes can't do?
How to fix it?
[1]:
https://stackoverflow.com/questions/31777692/python3-requests-with-sock5-proxy
--
https://mail.python.org/mailman/listinfo/python-list
how to select all the monday form "20150101" till "20150620"?
import pandas as pd
rng = pd.date_range("20150101","20150620",freq="D")
for day in rng:
x = pd.to_datetime(day)
y = x.timetuple().tm_wday
if(y == 0) :print(x.strftime("%Y%m%d"))
I have selected all the monday form "20150101" till "20150620",how to make
it more simple?
--
https://mail.python.org/mailman/listinfo/python-list
is there more simple way to do?
x='name,sex,birthday\n\nx1,male,1948/05/28\n\nx2,female,1952/03/27
\n\nx3,female,1994/12/09'
x.replace("\n\n","\n").splitlines()
is there more simple way to replace `x.replace("\n\n","\n").splitlines()` ?
--
https://mail.python.org/mailman/listinfo/python-list
how to insert the elements in a list properly?
word=["x1","x2","x3","x4","x5"] w=word[-2:] del word[-2:] word.insert(2,w) word ['x1', 'x2', ['x4', 'x5'], 'x3'] what i want to get is ['x1', 'x2', 'x4', 'x5', 'x3'] how can i insert them ? -- https://mail.python.org/mailman/listinfo/python-list
Re: how to insert the elements in a list properly?
words = ["x1", "x2", "x3", "x4", "x5"] words.append(words.pop(2)) words.append(words.pop(2)) words ['x1', 'x2', 'x5', 'x3', 'x4'] why i can't write it as: [words.append(words.pop(2)) for i in range(0,2)] >>> [words.append(words.pop(2)) for i in range(0,2)] [None, None] 2014-04-09 18:46 GMT+08:00 Peter Otten <[email protected]>: > length power wrote: > > > word=["x1","x2","x3","x4","x5"] > > w=word[-2:] > > del word[-2:] > > word.insert(2,w) > > word > > ['x1', 'x2', ['x4', 'x5'], 'x3'] > > > > what i want to get is > > ['x1', 'x2', 'x4', 'x5', 'x3'] > > > > how can i insert them ? > > Make the left-hand side an empty slice: > > >>> words = ["x1", "x2", "x3", "x4", "x5"] > >>> w = words[-2:] > >>> del words[-2:] > >>> words[2:2] = w > >>> words > ['x1', 'x2', 'x4', 'x5', 'x3'] > > Or note that the operation is equivalent to moving the third item to the > end: > > >>> words = ["x1", "x2", "x3", "x4", "x5"] > >>> words.append(words.pop(2)) > >>> words > ['x1', 'x2', 'x4', 'x5', 'x3'] > > > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list
How to display chinese character in 65001 in pytohn?
I am in win7 +python3.3.
import os
os.system("chcp 936")
fh=open("test.ch","w",encoding="utf-8")
fh.write("你")
fh.close()
os.system("chcp 65001")
fh=open("test.ch","r",encoding="utf-8").read()
print(fh)
Äã
>>> print(fh.encode("utf-8"))
b'\xe4\xbd\xa0'
How can i display the chinese character `你` in 65001?
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to display chinese character in 65001 in pytohn?
i tried this way ,and post it in stackoverflow,please see:
maybe it is the best answer.
Codepage 65001 is generally broken in binary mode as used by Python 3,
since _write calls Win32 WriteFile, which calls WriteConsoleA, which
returns the number of characters written instead of the number of bytes.
That confuses Python. ANSICON <https://github.com/adoxa/ansicon> can hook
WriteFile to fix this for programs that you specify in an environment
variable, but that won't help with input.
http://stackoverflow.com/questions/22977409/how-to-display-chinese-character-in-65001-in-pytohn?noredirect=1#comment35087732_22977409
2014-04-10 10:27 GMT+08:00 MRAB :
> On 2014-04-10 02:54, length power wrote:
>
>> I am in win7 +python3.3.
>>
>> import os
>> os.system("chcp 936")
>> fh=open("test.ch <http://test.ch>","w",encoding="utf-8")
>>
>> fh.write("你")
>> fh.close()
>> os.system("chcp 65001")
>> fh=open("test.ch <http://test.ch>","r",encoding="utf-8").read()
>>
>> print(fh)
>> Äã
>> >>> print(fh.encode("utf-8"))
>> b'\xe4\xbd\xa0'
>>
>> How can i display the chinese character `你` in 65001?
>>
>> The "chcp 65001" tells the operating system to use UTF-8, but you also
> have to tell Python to output UTF-8. Try this:
>
> from codecs import getwriter
> sys.stdout = getwriter('utf-8')(sys.stdout.detach())
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to display chinese character in 65001 in pytohn?
problem solved.if you enter python by python(command line),the problem
can't be solved.if you enter python by cmd ,and input python,no problem
happen.
2014-04-10 11:05 GMT+08:00 length power :
> i tried this way ,and post it in stackoverflow,please see:
> maybe it is the best answer.
> Codepage 65001 is generally broken in binary mode as used by Python 3,
> since _write calls Win32 WriteFile, which calls WriteConsoleA, which
> returns the number of characters written instead of the number of bytes.
> That confuses Python. ANSICON <https://github.com/adoxa/ansicon> can hook
> WriteFile to fix this for programs that you specify in an environment
> variable, but that won't help with input.
>
>
> http://stackoverflow.com/questions/22977409/how-to-display-chinese-character-in-65001-in-pytohn?noredirect=1#comment35087732_22977409
>
>
> 2014-04-10 10:27 GMT+08:00 MRAB :
>
> On 2014-04-10 02:54, length power wrote:
>>
>>> I am in win7 +python3.3.
>>>
>>> import os
>>> os.system("chcp 936")
>>> fh=open("test.ch <http://test.ch>","w",encoding="utf-8")
>>>
>>> fh.write("你")
>>> fh.close()
>>> os.system("chcp 65001")
>>> fh=open("test.ch <http://test.ch>","r",encoding="utf-8").read()
>>>
>>> print(fh)
>>> Äã
>>> >>> print(fh.encode("utf-8"))
>>> b'\xe4\xbd\xa0'
>>>
>>> How can i display the chinese character `你` in 65001?
>>>
>>> The "chcp 65001" tells the operating system to use UTF-8, but you also
>> have to tell Python to output UTF-8. Try this:
>>
>> from codecs import getwriter
>> sys.stdout = getwriter('utf-8')(sys.stdout.detach())
>>
>> --
>> https://mail.python.org/mailman/listinfo/python-list
>>
>
>
--
https://mail.python.org/mailman/listinfo/python-list
how to make ["a","b",["c","d"],"e"] into ['a', 'b', 'c', 'd', 'e'] ?
>>> x=["a","b",["c","d"],"e"] >>> y=x[2] >>> y ['c', 'd'] >>> x.insert(2,y[0]) >>> x ['a', 'b', 'c', ['c', 'd'], 'e'] >>> x.insert(3,y[1]) >>> x ['a', 'b', 'c', 'd', ['c', 'd'], 'e'] >>> del x[4] >>> x ['a', 'b', 'c', 'd', 'e'] >>> maybe there is a more smart way to do. -- https://mail.python.org/mailman/listinfo/python-list
why i have the output of [None, None, None]
>>> x=['','x1','x2','x3',' ']
>>> x
['', 'x1', 'x2', 'x3', ' ']
>>> [print("ok") for it in x if it.strip() !=""]
ok
ok
ok
[None, None, None]
i understand there are three 'ok' in the output,but why i have the output
of [None, None, None]
--
https://mail.python.org/mailman/listinfo/python-list
the logical operation confused me
>>> "ok" or "not ok" 'ok' >>> "ok" and "not ok" 'not ok' >>> why "ok" or "not ok" output "ok" , "ok" and "not ok" output "not ok" ? -- https://mail.python.org/mailman/listinfo/python-list
