Python设置代理求助关于爬虫调用requests配置,pythonrequests,空壳代码:# -*- u
Python设置代理求助关于爬虫调用requests配置,pythonrequests,空壳代码:# -*- u
空壳代码:
# -*- utf-8 -*-import requestss = requests.session()login_data = {'email': 'myEmail', 'password': 'psw'}s.post('https://www.facebook.com/', login_data)r = s.get('http://www.facebook.com/people/someone/followers')print r.text.encode('utf-8')
稍加修改就能在知乎上爬数据,但无法对facebook使用
requests如何设置代理?
OS X GoAgentX 全局代理
根据码友的提示:
import requesocks as requestssession = requests.session()session.proxies = {'http': 'socks5://127.0.0.1:8087', 'https': 'socks5://127.0.0.1:8087'}resp = session.get('https://www.facebook.com/', auth=('myEmail', 'psw'))print(resp.text)
要确定你的代理是可用的,我用的是Goagent,下面的代码测试通过了.
#!/usr/bin/env python2.7# -*- utf-8 -*-import requestsimport res = requests.Session()proxies = { 'http': 'http://127.0.0.1:8087', 'https': 'http://127.0.0.1:8087',}login_data = { 'email': '[email protected]', 'pass': 'mima',}r = s.get('https://www.facebook.com/login.php?login_attempt=1', proxies=proxies, verify=False)lgm = re.search('name="lgnrnd" value="([^"]+)"', r.content, re.I | re.S)lsm = re.search('name="lsd" value="([^"]+)"', r.content, re.I | re.S)if lgm is None or lsm is None: print 'cannot get form param: lgnrnd or lsd'else: login_data.update({'lgnrnd': lgm.group(1), 'lsd': lsm.group(1)}) l = s.post('https://www.facebook.com/login.php?login_attempt=1', params=login_data, proxies=proxies, verify=False) m = re.search('sk=welcome', l.content, re.I | re.S) if m is not None: print 'login success.' else: print 'login failed.'
早上起来过来看看. 还是没解决啊.
你这个问题如我在我评论提示的, "http://127 改成 socks5://127 试下", 这个goagent其实是socks5的代理类型,而requests不支持socks5.
原本以为requests已经打了这个补丁, https://github.com/kennethreitz/requests/pull/478
没想到最新版2.3还是不支持.
有个workaround.
我这边没goagent,用的是 ssh -qTfnN -D 1234 root@myip. 不过都一样啦
安装这个东西 pip install PySocks
# -*- utf-8 -*-import requestsimport socketimport sockssocks.set_default_proxy(socks.SOCKS5, "127.0.0.1",1234)socket.socket = socks.socksocketr = requests.get('http://www.telize.com/geoip')print r.text.encode('utf-8')
希望下次提问题时能尽可能提供更多的信息. "不行"是最糟糕的描述, 起码附上python错误提示吧
编橙之家文章,
相关内容
- Python gvim自动补全代码配置文件方法,pythongvim,gvim的代
- 迅雷批量下载用Python、django怎么写,pythondjango,python/
- Django模板中指定部分block重写怎么操作,djangoblock,假如
- Python翻转多维序列是如何实现的,python翻转多维序列
- Django服务器报错virtualenv服务器不能运行UnicodeDecodeErro
- python requests 模拟登陆战网失败,pythonrequests,想自己写一
- Python urllib.openurl()不定时会抛出异常是什么情况.,,异常
- 关于python类使用顺序问题的疑惑,python类顺序疑惑,dj
- Python str函数与repr函数两都有何不同,pythonrepr,这两个函
- Ubuntu下编译Vim8(python)无数次编译失败,ubuntuvim8,因为
评论关闭