我使用Python包requesocks
而不是{
我试图使用Python内置的模拟库模拟session
对象的get()
方法,但无法模拟状态代码:
import mock
import requesocks
class WebScraper:
def get_content(self, url, proxy):
session = requesocks.session()
session.proxies = proxy
response = session.get(url)
return response.status_code
def main():
session = requesocks.session()
session.get = mock.MagicMock(return_value={'status_code': 400})
scraper = WebScraper()
proxy = {'http': 'socks5://localhost:1080'}
status_code = scraper.get_content('http://www.purple.com', proxy)
print "Status Code: ", status_code
if __name__ == "__main__":
main()
在下面的示例中,运行结果是人为的:
^{pr2}$正确的方法是什么来模拟它,以便我得到一个状态代码400
?在
另外,是否有类似的模仿库,比如requests-mock
for requesocks
?在
我通过调整this answer中的解决方案使其正常工作。希望这可以帮助其他人,下面是我更新的代码:
这将产生所需的输出:
^{pr2}$相关问题 更多 >
编程相关推荐