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
nyxsonsleep
V2EX  ›  Python

新手尝试用 aiohttp 写了个爬虫

  •  
  •   nyxsonsleep · 2020-12-31 23:52:51 +08:00 · 3141 次点击
    这是一个创建于 1458 天前的主题,其中的信息可能已经有所发展或是发生改变。

    然后发现 aiohttp 不走系统代理,但是 requests 是走系统代理的。 求问怎么设置可以让 aiohttp 走系统代理呢?

    12 条回复    2021-01-02 01:33:57 +08:00
    locoz
        1
    locoz  
       2021-01-01 00:52:54 +08:00 via Android
    这其实是个锻炼自己看代码解决问题能力的好机会,requests 的代码很简单明了,你找到它的做法照抄一份用在 aiohttp 上就行了,不难的。

    你看你这在 v2 上问,过了差不多一个小时了也得不到答案…而你要是自己会看代码,分分钟就完事了。
    learningman
        2
    learningman  
       2021-01-01 01:01:18 +08:00
    @locoz 要自己包装实现 CONNECT,好像也没那么简单。。。
    locoz
        3
    locoz  
       2021-01-01 01:19:35 +08:00
    @learningman #2 他这情况估计就是懒得设置代理而已,直接把读环境变量和注册表的那部分翻出来执行一下,然后传去填代理设置就好了。考虑复用的话就再简单封装个获取 session 对象的函数,不用搞那么复杂。(固定设备的话其实还有个邪道做法,直接用 Proxifier 让 Python 进程走代理...)
    so1n
        4
    so1n  
       2021-01-01 01:41:32 +08:00 via Android
    写爬虫不用 aiohttp 可以省很多烦恼
    wangyanyansg
        5
    wangyanyansg  
       2021-01-01 11:26:42 +08:00 via iPhone
    可以来我做的"技来技往 app”找个会爬虫的军师参谋来问问
    Liyiw
        6
    Liyiw  
       2021-01-01 11:29:12 +08:00
    abersheeran
        7
    abersheeran  
       2021-01-01 20:09:39 +08:00
    @so1n 赞同,aiohttp 会有很多奇怪的问题。
    baobab
        8
    baobab  
       2021-01-01 20:26:55 +08:00
    @abersheeran 赞同,而且异步爬一个站点太快很容易被封 ip,这个坑走下去没完没了了。
    abersheeran
        9
    abersheeran  
       2021-01-01 21:26:45 +08:00   ❤️ 1
    @baobab 控制不了速度是你的问题不是异步爬虫的问题。
    baobab
        10
    baobab  
       2021-01-01 22:24:28 +08:00
    @abersheeran 求大神教我怎么控制速度
    nyxsonsleep
        11
    nyxsonsleep  
    OP
       2021-01-02 01:21:36 +08:00
    @Liyiw 我是知道怎么设置 aiohttp 和 requests 的代理,但我不想设。我只是想他默认走系统代理
    nyxsonsleep
        12
    nyxsonsleep  
    OP
       2021-01-02 01:33:57 +08:00
    @baobab 共用一个 session 可以设置参数控制连接数。另一个可以在 loop 循环中添加非异步 sleep 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.