掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1246|回复: 7

[求助] python获取WMU的问题

[复制链接]
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    发表于 2017-11-8 22:10:17 | 显示全部楼层 |阅读模式
    本帖最后由 Husigh 于 2017-11-16 11:05 编辑 % A2 W) P' a# ~: Q! {, _# c5 H

    0 P% h! r1 o3 M/ b$ sb大脚本名为******.py。eb的账号已经找到了,现在是速度特别慢,老是报错。错误信息如下。py是2.7.14版* R/ O5 |% Y, D
    : C9 o  T! H1 p# V! m: m4 V: L
    eb机构账户是不是可以开多窗口?如何设置分块多窗口提取?请教各位,谢谢。
    4 C2 w+ h* m4 \( J. q
    - z$ N) w, |# C" M  _8 s/ G. [% E-Traceback (most recent call last):
    ! t  [+ i$ ~0 ]  B. @  File "D:\M\******.py", line 244, in __fetchdata_and_make_mdx& T+ e  F: J4 W1 u0 D1 v: ~- t
        page = self.postdata(start, pos)
    2 N# ?' T6 z# O6 E+ h( R% e  File "D:\M\******.py", line 526, in postdata
    ) y( t; a9 h$ F7 g! _* e! E: k    r = self.__session.post(self.__base_url, data=param, timeout=100)
    ( z; B0 T. {5 D, J  File "C:\Python27\lib\requests\sessions.py", line 555, in post3 S! f* p0 j3 D& \% L. f$ L
        return self.request('POST', url, data=data, json=json, **kwargs)) L( m; v5 O6 ^2 N: y$ u
      File "C:\Python27\lib\requests\sessions.py", line 508, in request) h" D" ?* @+ }9 A1 [
        resp = self.send(prep, **send_kwargs)
    9 ]5 ], }& Q8 L  File "C:\Python27\lib\requests\sessions.py", line 658, in send
    % e5 Q- G+ {, `3 w    r.content& b! ?6 k7 _" Z& W2 v3 g6 c; W
      File "C:\Python27\lib\requests\models.py", line 823, in content
    ) K6 d" o, Z. Z) Z    self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
    & n( ~3 U5 F; K  File "C:\Python27\lib\requests\models.py", line 752, in generate+ V# c3 m( X* ?& G
        raise ConnectionError(e)
    6 a' k) U* u* S8 \- \* D
    ConnectionError: HTTPConnectionPool(host='**.***.com', port=80): Read timed out.( g* P( X1 h$ P$ V
    None
    & ^0 q7 z% E# Q. u% k
    '180: 9' failed, retry automatically later
    % W5 o6 k5 D5 d6 ]6 j- Traceback (most recent call last):/ C1 P$ X5 h5 `. L, b7 {/ Z2 g
      File "D:\M\******.py", line 247, in __fetchdata_and_make_mdx7 e+ {" L1 d! Z2 J  D, ]9 J
        word = self.makeword(page, words, pic)
    ; x" j4 U. m% O! ^  File "D:\M\******.py", line 595, in makeword
    5 i! ?6 e) m( A  C4 M2 W# x    worddef = p.sub(lambda m: self.__chgimg(m, pic), worddef)2 h4 p8 o; S2 ~# K# ?5 Q
    File "D:\M\******.py", line 595, in <lambda>
    5 H6 Q% K: E0 s2 D    worddef = p.sub(lambda m: self.__chgimg(m, pic), worddef)8 J( M& e3 I/ H6 ]4 w
      File "D:\M\******.py", line 572, in __chgimg
    / Z! p3 Y( Z: e7 [: [    div = p.sub(lambda n: self.__repimg(m.group(1), n.group(1), self.__origin), div)
    7 f( S4 Q" [6 V% B  File "D:\M\******.py", line 572, in <lambda>
      A  r+ g4 E) i    div = p.sub(lambda n: self.__repimg(m.group(1), n.group(1), self.__origin), div)0 ~/ y2 i! |, Y; B
      File "D:\M\******.py", line 547, in __repimg
    ' h( {& M5 M+ u4 S0 w    dump(self.getpage(''.join([rpath, fnm]), base_url), file, 'wb')8 ?& `7 `7 P# z0 W+ b2 b& O/ G
      File "D:\M\******.py", line 522, in getpage
    % u  O2 @% e, z4 L    return getpage(self.__session, link, base_url)3 }/ o& R; m1 y1 w  r' I, f) A) ?
      File "D:\M\******.py", line 73, in getpage
    # L- Q: V$ p/ }) s& g' @    r = session.get(url, timeout=10, allow_redirects=False)
    ) S* A+ J1 ~7 k1 d9 K  File "C:\Python27\lib\requests\sessions.py", line 521, in get
    $ Y% D: ]5 d4 J" o" |$ P5 @    return self.request('GET', url, **kwargs)" F: `; c9 E5 k9 C" w$ Y: s" q* U& Z: m6 Y
      File "C:\Python27\lib\requests\sessions.py", line 508, in request0 Z& B7 i. c( C, \$ C
        resp = self.send(prep, **send_kwargs)
    ; \: I& R" z+ W' k3 e' _2 c
      File "C:\Python27\lib\requests\sessions.py", line 658, in send" ?% t+ N! b+ Y* M5 ^1 q+ E
        r.content
    & D, V; V0 a$ }  File "C:\Python27\lib\requests\models.py", line 823, in content
    7 E. ~5 `  \* T/ C" o9 A    self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes(): l3 _* f, x, q9 u9 z4 _6 p
      File "C:\Python27\lib\requests\models.py", line 752, in generate
    3 {! ?/ g! T, ?* b5 M% G) j    raise ConnectionError(e)
    ( C: [! w# j, ]% H' u( L- F; Y( N/ J

    ' Q5 B% r  O5 T, w+ a6 ]1 d  n+ i  p, M0 D6 T8 {5 Z: X1 Z
    ConnectionError: HTTPConnectionPool(host='**.***', port=80): Max retries exceeded
    9 C3 r. B- f4 ]! }with url: /baidu/%2A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000000000386BE80>: Failed to establish a new connection: [Errno 10060] ',))
    - i9 |* {' Y1 w
    $ H. s/ P7 B* ~4 l( s2 U
    File "C:\Python27\lib\requests\adapters.py", line 508, in send8 I+ E* Q5 [, ?
        raise ConnectionError(e, request=request)) M4 O& B/ c7 U; Z+ P

    , @+ q+ @! Y' D. a6 A$ }- X6 h  t/ E6 ^/ Y# R

    ; H) ^% L& V' c5 T  i1 E: d7 g: L& l9 ]有找过解决办法不知从何下手
    7 s! O6 b8 A0 A6 ~7 H  x7 m5 l$ S, H  d, P6 x9 [; c
    例:http连接太多没有关闭导致的' A$ p+ o9 g$ q# u! H
    1 Y2 D* _5 L8 g
    1、增加重试连接次数% |& {! v* Z3 h( z
    requests.adapters.DEFAULT_RETRIES = 57 W' _( {- s* u' v" k
    , a& s, S# ?. f* k) j; y7 w
    2、关闭多余的连接( s. |+ `# [$ s- L
    requests使用了urllib3库,默认的http connection是keep-alive的,requests设置False关闭。0 F) |* _. ?  r4 t$ J* \+ y

    8 E% I& H% D5 {% }1 P/ M操作方法
    1 m  P/ J' S9 j/ es = requests.session()
    + e$ R5 ?4 n  p1 p. e" Z- R4 i* I  s.keep_alive = False
    - N& ?# ]; I7 V7 z; d6 m- L: T8 }% d. ^0 c
    6 U& E) l  [7 w! Y0 ?) O$ T/ d
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

     楼主| 发表于 2017-11-9 12:31:57 | 显示全部楼层
    需要user和password的网页,是不是不能用多进程抓取啊?
    3 X2 m4 r5 {( ~, e7 `: c
    + N2 r6 c0 ?6 x' n+ X出现如下显示:requests.exceptions.ConnectionError:HTTPConectionPool(host='**' , port=80) Max retries exceeded with url:*****(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000000000442F208>)Failed to establish a new connection: [Errno  10060]',))直接退出运行( v( o* u+ P5 s' Q7 e* w
    是多进程引起的吗
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

     楼主| 发表于 2017-11-9 20:47:47 | 显示全部楼层
    超过48小时了,才到b,求帮助。

    该用户从未签到

    发表于 2017-11-10 08:32:47 | 显示全部楼层
    本帖最后由 Oeasy 于 2017-11-10 08:37 编辑 % W' j, x0 Q; ?; d  T% l
    Husigh 发表于 2017-11-9 20:47( e! f3 @3 U8 M
    超过48小时了,才到b,求帮助。
    * T8 B" D& q3 E: N4 W! I

    3 ]. u% k) r& ^% Q( @& h4 d7 K0 Z+ \" A; o% _1 L! L1 E5 I. O7 ~
    国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。7 L# G; I! A/ U3 x  h" G# y. C0 B$ k% B

    # C9 B. T5 [1 `3 w9 a% L. u可能网站服务器对于访问频率也做了一定限制。: r8 j1 \6 W" X9 u
    * w9 d( b2 |4 C0 X) S  ?0 T
    做一个词典,从数据获取到排版,尤其是数据获取,耗上好几天、几週甚至几个月,那是再正常不过的事情,做过的都知道。两三年前有朋友抓过一回,当时并没有 bt4baidu 的开源脚本,前前后后弄了近一年时间。
    0 ?1 ]5 T- C- A, u( L; D% E
    ; i+ x  u( i* O7 ]当然,技术、资金实力雄厚的话,可能会节省海量的时间。比如租好多服务器,买好多**,可以很快搞定;土豪都不用自己动手,直接买数据甚至成品就行了嘛。不过一般人做不到,只有砸时间了。
    4 w8 z$ ]- R+ ?4 ]& z6 T: D9 k/ }% l* r7 w! e* l( |0 {) q
    加油噢,从你的帖子,也看到了你的进步。
    0 Y& {. Q' ^$ L* W# c8 R; U/ W5 R! n( K6 N% m4 s( H  B! _& O
    我是无暇给予其他技术上的帮助,敲边鼓还是会的。
    . m0 `" U& M, I% U1 h" E
    ( s' x  Y- a6 H) A9 b/ r$ n1 r3 _  g% E8 s. m5 V7 M) Q) ?
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

     楼主| 发表于 2017-11-10 12:28:21 | 显示全部楼层
    Oeasy 发表于 2017-11-10 08:324 F1 m8 D3 U) Y" ^  J
    国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。# a, _& O/ T. F* M: j9 B
    1 l, Q. {1 ^- A8 U8 J
    可能网站服务器对于访问 ...

    + e$ _  ~8 L$ \谢谢鼓励。时间还是可以耗得起的,就怕试用到期,封我的IP。
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

     楼主| 发表于 2017-11-14 12:35:28 | 显示全部楼层
    现在到e了,心力憔悴
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

     楼主| 发表于 2017-11-16 12:28:47 | 显示全部楼层
    eb机构账户是不是可以开多窗口?如何设置分块多窗口提取?请教各位,谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-5-11 13:28 , Processed in 0.021216 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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