推荐学习书目
› 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
gaotongfei
V2EX  ›  Python

python requests(+requesocks)用 tor 爬 google scholar 老是 403

  •  
  •   gaotongfei ·
    gaotongfei · Nov 21, 2015 · 3582 views
    This topic created in 4002 days ago, the information mentioned may be changed or developed.

    伪装了 user-agent (有个 user-agent list ,随机从里面取一个),爬取频率 20 秒一次, tor 开了 100 个端口,也存储了好多的 cookie ,每次 get 请求都随机从 tor 的端口和 cookie 中取一个,但是还是大范围的 403 。

    我怀疑是获取 cookie 时没有用 socks5 代理?导致暴露了 ip ?可问题是我用的 requests 不支持 socks5 代理, requesocks 是支持了,但是没法获取 cookie (因为 requesocks fork 的 requests 版本太低了)

    有没有什么解决办法?

    17 replies  •  2015-11-22 11:23:34 +08:00
    linhua
    linhua
    Nov 21, 2015❤️1
    1
    http 代理-->GAE 代理-->xx-net
    https://github.com/XX-net/XX-Net
    gaotongfei
    gaotongfei
    OP
    Nov 21, 2015
    2
    @linhua 可以每次 get 就更换一个 ip 吗?
    linhua
    linhua
    Nov 21, 2015
    4
    @gaotongfei
    不过出口 ip 和 google ip(入口 ip)是不一样的,你架设好代理后,查询一下 ip 就明白了。
    ericls
    ericls
    Nov 21, 2015
    5
    IP 地址不是问题

    DO 随便买个 VPS 都有 2^64 个 IP 一辈子都用不完
    TaMud
    TaMud
    Nov 21, 2015
    6
    @ericls 哪家 vps 有这么多 ip ?
    cnleoyang
    cnleoyang
    Nov 21, 2015
    7
    @TaMud ipv6?
    stockss
    stockss
    Nov 21, 2015❤️1
    8
    用 privoxy 把 socks 代理转化为 http 代理,就可以给 python 用了
    Tianpu
    Tianpu
    Nov 21, 2015 via iPhone
    9
    很可能是某些出口被封了吧。

    还有 curl 才是最好的,直接 tor 代理。

    建议转 php 吧。
    lazycat
    lazycat
    Nov 21, 2015 via Android
    10
    @ericls do 这种直接 IP 段都被 google 封了的,你买多少都没用
    feather12315
    feather12315
    Nov 21, 2015 via Android
    11
    @ericls ?不明白。 4 只有 1 个, 6 有 15 个呀
    gaotongfei
    gaotongfei
    OP
    Nov 21, 2015 via Android
    12
    @stockss 想过用它,但是因为我 tor 开了 100 个端口,我担心对应 privoxy 要写 100 个配置文件,嫌麻烦就没用
    gaotongfei
    gaotongfei
    OP
    Nov 21, 2015 via Android
    13
    @stockss
    You can use this statement multiple times to make Privoxy listen on more ports or more IP addresses
    查了下,好像可以在一个配置文件里把所有需要监听的端口都写出来。等会试试看。
    FreeDog
    FreeDog
    Nov 21, 2015
    14
    @ericls 那些 IPv6 地址会被 Google 看成一个的。现在随随便便分配都是 /64 的块,判断逻辑也与时俱进了。
    Arthur2e5
    Arthur2e5
    Nov 22, 2015
    15
    本身从 TOR 上 Google 正常搜索都经常要输验证码。

    这种事情本来就该是问朋友借一排 SS 之类的玩法……
    gaotongfei
    gaotongfei
    OP
    Nov 22, 2015 via Android
    16
    @Arthur2e5 也用过 ss ,从某网站买的九个账号,一开始都是 200 ,爬的久了还是 403 ,可能是九个还是太少了。不知道哪里有便宜的 ss 账号卖。
    Arthur2e5
    Arthur2e5
    Nov 22, 2015❤️1
    17
    @gaotongfei 嘛,只要频率高了都会……所以我才会说出“借”(嗯,或者请吃顿饭?)这样的话,因为基本都是用个没多久就要换掉的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1389 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 20:17 · PVG 04:17 · LAX 12:17 · JFK 15:17
    ♥ Do have faith in what you're doing.