#!/usr/bin/python
import requests
import random
def rewrite(ip):
return "{\'http\'"+":"+"\'http://"+ip+"\'}" #格式化代理
def req(url,p=None):
r = None
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/47.0.1453.110 Safari/5
37.36','Refefer':url}
s = requests.Session()
with open("/home/tech/proxyok","r") as f:
ips=f.read().strip('\n').split()
ipss = map(rewrite,ips)
proxy = random.choice(ipss)
if proxy:
try:
r = s.get(url,headers=headers,proxies=proxy,timeout=3)
except Exception,e:
print e
else:
try:
r = s.get(url,headers=headers)
except Exception,e:
print e
return r
if __name__ == "__main__":
print req('http://baidu.com')
运行后报'str' object has no attribute 'get'
我以为是 requests.get 这个 get 的问题,后来把 try 去掉后,追踪到以下错误,但是我不明白是什么原因,新人,请指点一下,谢谢!
Traceback (most recent call last):
File "httpreq.py", line 31, in <module>
print req('http://xueqiu.com')
File "httpreq.py", line 20, in req
r = s.get(url,headers=headers,proxies=p,timeout=3)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 310, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 279, in request
resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 374, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 155, in send
conn = self.get_connection(request.url, proxies)
File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 119, in get_connection
proxy = proxies.get(urlparse(url).scheme)
AttributeError: 'str' object has no attribute 'get'
import requests
import random
def rewrite(ip):
return "{\'http\'"+":"+"\'http://"+ip+"\'}" #格式化代理
def req(url,p=None):
r = None
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/47.0.1453.110 Safari/5
37.36','Refefer':url}
s = requests.Session()
with open("/home/tech/proxyok","r") as f:
ips=f.read().strip('\n').split()
ipss = map(rewrite,ips)
proxy = random.choice(ipss)
if proxy:
try:
r = s.get(url,headers=headers,proxies=proxy,timeout=3)
except Exception,e:
print e
else:
try:
r = s.get(url,headers=headers)
except Exception,e:
print e
return r
if __name__ == "__main__":
print req('http://baidu.com')
运行后报'str' object has no attribute 'get'
我以为是 requests.get 这个 get 的问题,后来把 try 去掉后,追踪到以下错误,但是我不明白是什么原因,新人,请指点一下,谢谢!
Traceback (most recent call last):
File "httpreq.py", line 31, in <module>
print req('http://xueqiu.com')
File "httpreq.py", line 20, in req
r = s.get(url,headers=headers,proxies=p,timeout=3)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 310, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 279, in request
resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 374, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 155, in send
conn = self.get_connection(request.url, proxies)
File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 119, in get_connection
proxy = proxies.get(urlparse(url).scheme)
AttributeError: 'str' object has no attribute 'get'