鱼C论坛

 找回密码
 立即注册
查看: 2142|回复: 5

[作品展示] 用代理访问网站(使用urllib/requests)【重要更新】_PythonWidget[2]

[复制链接]
发表于 2021-3-26 20:08:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 591821661 于 2021-4-27 21:48 编辑

遵循开源精神 把自己写的小模块分享到论坛 同时希望有大佬能够给出requests的代理实例~
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 27 19:32:49 2021

@author: Sharpstar_kylin
"""
import urllib.request
import json
import sys
import requests
def urllib_useproxy(proxy=''):
    if proxy:
        proxy_support = urllib.request.ProxyHandler({
                'http'  : proxy, 
                'https' : proxy,
                })
    else:
        proxy_support = urllib.request.ProxyHandler({
                })
    
    opener = urllib.request.build_opener(proxy_support)
    opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'),
                         ]
    urllib.request.install_opener(opener)
        
def urllib_get_ip(proxy):
    # Get IP Address
    try:
        urllib_useproxy(proxy)  # 正常
        ip_api_url = 'http://ip-api.com/json/?fields=61439'
        ip_result = urllib.request.urlopen(ip_api_url)
        proxy_text = ip_result.read().decode('utf-8')
        s_get_dict = json.loads(proxy_text)
        print('urllib\'s response: %s' % ip_result.code)
        print('----------------------IP Information Begin--------------------------')
        for key in s_get_dict:
            print('%s : %s' % (key, s_get_dict[key]))
        print('----------------------IP Information End--------------------------\n')
        
    except:
        print('url_get error')
        print(sys.exc_info()[0], sys.exc_info()[1])
        
def requests_get_ip(proxy):
    # Get IP Address
    try:
        proxies = {
          "http": proxy,
          "https": proxy,
        }
        res = requests.get(ip_api_url, proxies=proxies)
        proxy_text = res.content.decode('utf-8')
        s_get_dict = json.loads(proxy_text)
        print('Requests\'s response : %s' % res.status_code)
        print('----------------------IP Information Begin--------------------------')
        for key in s_get_dict:
            print('%s : %s' % (key, s_get_dict[key]))
        print('----------------------IP Information End--------------------------\n')
        
    except:
        print('url_get error')
        print(sys.exc_info()[0], sys.exc_info()[1])

if __name__ == '__main__':  # 如果运行该文件,而不是作为库函数导入 则运行下列代码
    
    ip_api_url = 'http://ip-api.com/json/?fields=61439'   
#    proxy = '127.0.0.1:1080' #使用代理
    proxy = '' #不使用代理
    urllib_get_ip(proxy)
    requests_get_ip(proxy)

2021-04-27_21-47-33 by Sharpstar_kylin.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-1 07:27:22 | 显示全部楼层
老规矩,先赞再看。学习Python
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 09:11:01 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-4 18:27:12 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-20 16:06:30 | 显示全部楼层
前来学习经验
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-27 10:10:56 | 显示全部楼层
先学看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 22:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表