TA的每日心情 | 开心 2020-12-29 09:50 |
---|
签到天数: 165 天 [LV.7]常住居民III
|
本帖最后由 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
|
|