小白请教各大佬点 Python requests 库的 ip 代理池的知识 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Kvip
V2EX    Python

小白请教各大佬点 Python requests 库的 ip 代理池的知识

  •  
  •   Kvip 2020 年 6 月 26 日 3381 次点击
    这是一个创建于 2024 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这阵子写了点爬虫,目前已顺利将目标网站数据爬下来。现在我想要给程序的请求加个 ip 代理池。
    初次学习,产生了两个疑惑,可能问题太过小白,因此没能在网上找到答案,在此特来请教下各位大佬。

    1 、如果我们使用的 ip 代理池中某个 ip 失效了,requests 请求是否会自动帮我们从 IP 代理池换个新的 ip 重新进行请求,还是直接就挂掉?

    2 、同个 session 下进行有不同的 post 请求,如果前后请求 ip 出现不一样,是否会翻车(后面的是否会请求失败)

    3 、求大佬推荐免费的代理池,因为目前只是个人学习乐趣,暂不考虑收费代理池。

    以下是我爬虫程序的核心代码:

    session = requests.Session() proxies = { "http":"http://ip:端口号" "https":"https://ip:端口号" } session.get(url, proxies=proxies) session.post(url, data, proxies=proxies) session.close() 
    10 条回复    2020-06-28 00:11:38 +08:00
    mckelvin
        1
    mckelvin  
       2020 年 6 月 26 日
    先考虑下能不能通过 x-forwarded-for 头来伪造 IP
    jeeyong
        2
    jeeyong  
       2020 年 6 月 26 日
    不是直接人采集任务去判断代理 IP 是否可用吧?
    我都是先判断 ip 是否可用, 可用的话压入一个队列.
    需要用的时候取出来...
    当然每个 ip 的生命周期有多长就要看你选的 ip 怎么样了.
    推荐能用的在 30 秒内用完.
    Cy86
        3
    Cy86  
       2020 年 6 月 27 日
    1. 貌似没有, 我都是 try 保护自己写换 ip 逻辑
    2. 最好不要, 如果有反爬注意这块的话 会翻车, 可以先测试下容忍度
    3. Github 上搜 ip 代理池, 有一堆, 最好从中获取这些网站, 然后自己爬下来写代理池
    老白建议:
    先给你个 开放代理:ip.ihuan.me
    最好按一楼说的试一下, 比如爬 91 这招就贼好使, 但也要控制速度, 每秒 1000 的话 会封 ip
    如果要爬的域名是大厂 or 比较有价值,这种反爬比较严重,那还是直接买代理吧, 开放代理都差不多封完了
    xingshu1990
        4
    xingshu1990  
       2020 年 6 月 27 日
    建议还是用阿布云的收费(1 元 1 小时的那种可以玩玩),这里还有接入文档: https://www.abuyun.com/http-proxy/dyn-manual.html
    ![QQ 截图 20200627082317.png]( https://i.loli.net/2020/06/27/spVvoz239ydeKxt.png)
    ![QQ 截图 20200627082339.png]( https://i.loli.net/2020/06/27/lLA2zHMCJux1yYp.png)
    我看了一下网络上的教程 好像没有说 requests 自带更换 IP 请求。
    那只能是写 try except,另外阿布云目前只是提供国内 IP.
    metamask
        5
    metamask  
       2020 年 6 月 27 日
    1 、如果我们使用的 ip 代理池中某个 ip 失效了,requests 请求是否会自动帮我们从 IP 代理池换个新的 ip 重新进行请求,还是直接就挂掉?
    requests 不会,
    但你可以自己封多一层
    每次随机从 ip 池中拿,
    写个修饰器,或者用 partial 事先把 headers 包好。

    2 、同个 session 下进行有不同的 post 请求,如果前后请求 ip 出现不一样,是否会翻车(后面的是否会请求失败)
    这个一般不会,看反爬的容忍度,你就直接试下不就好咯。
    Kvip
        6
    Kvip  
    OP
       2020 年 6 月 28 日
    @jeeyong 感谢您提供的思路,这是一个不错的解决方案
    Kvip
        7
    Kvip  
    OP
       2020 年 6 月 28 日
    @mckelvin x-forwarded-for 是确实是一种不错的解决思路,我查看了下其原理,应该可以更简便地解决我的问题,明天深入测试下,感谢您提供了一个非常不错的思路。
    Kvip
        8
    Kvip  
    OP
       2020 年 6 月 28 日
    @Cy86 谢谢您提供的见解,一楼提供的方案确实不错,明天试下
    Kvip
        9
    Kvip  
    OP
       2020 年 6 月 28 日
    @xingshu1990 谢谢您的提供的网站,我会考虑的
    Kvip
        10
    Kvip  
    OP
       2020 年 6 月 28 日
    @freakxx 谢谢您提供的处理思路,我测试了下同 session 不同 ip 进行请求后,有效,谢谢您的解答
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2620 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:27 PVG 10:27 LAX 18:27 JFK 21:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86