@@ -60,7 +60,7 @@ class Request:
6060 "json" ,
6161 }
6262
63- DEFAULT_KEY_VALUE = dict (
63+ _DEFAULT_KEY_VALUE_ = dict (
6464 url = "" ,
6565 method = None ,
6666 retry_times = 0 ,
@@ -79,6 +79,12 @@ class Request:
7979 make_absolute_links = None ,
8080 )
8181
82+ _CUSTOM_PROPERTIES_ = {
83+ "requests_kwargs" ,
84+ "custom_ua" ,
85+ "custom_proxies" ,
86+ }
87+
8288 def __init__ (
8389 self ,
8490 url = "" ,
@@ -160,13 +166,17 @@ def __init__(
160166 else setting .MAKE_ABSOLUTE_LINKS
161167 )
162168
169+ # 自定义属性,不参与序列化
163170 self .requests_kwargs = {}
164171 for key , value in kwargs .items ():
165172 if key in self .__class__ .__REQUEST_ATTRS__ : # 取requests参数
166173 self .requests_kwargs [key ] = value
167174
168175 self .__dict__ [key ] = value
169176
177+ self .custom_ua = False
178+ self .custom_proxies = False
179+
170180 def __repr__ (self ):
171181 try :
172182 return "<Request {}>" .format (self .url )
@@ -246,9 +256,9 @@ def to_dict(self):
246256
247257 for key , value in self .__dict__ .items ():
248258 if (
249- key in self .__class__ .DEFAULT_KEY_VALUE
250- and self .__class__ .DEFAULT_KEY_VALUE .get (key ) == value
251- or key == "requests_kwargs"
259+ key in self .__class__ ._DEFAULT_KEY_VALUE_
260+ and self .__class__ ._DEFAULT_KEY_VALUE_ .get (key ) == value
261+ or key in self . __class__ . _CUSTOM_PROPERTIES_
252262 ):
253263 continue
254264
@@ -301,23 +311,21 @@ def make_requests_kwargs(self):
301311 method = "GET"
302312 self .method = method
303313
304- # 随机user —agent
314+ # 设置user —agent
305315 headers = self .requests_kwargs .get ("headers" , {})
306316 if "user-agent" not in headers and "User-Agent" not in headers :
307- if self .render : # 如果是渲染默认,优先使用WEBDRIVER中配置的ua
308- ua = setting .WEBDRIVER .get (
309- "user_agent"
310- ) or self .__class__ .user_agent_pool .get (setting .USER_AGENT_TYPE )
311- else :
312- ua = self .__class__ .user_agent_pool .get (setting .USER_AGENT_TYPE )
313-
314317 if self .random_user_agent and setting .RANDOM_HEADERS :
318+ # 随机user—agent
319+ ua = self .__class__ .user_agent_pool .get (setting .USER_AGENT_TYPE )
315320 headers .update ({"User-Agent" : ua })
316321 self .requests_kwargs .update (headers = headers )
322+ else :
323+ # 使用默认的user—agent
324+ self .requests_kwargs .setdefault (
325+ "headers" , {"User-Agent" : setting .DEFAULT_USERAGENT }
326+ )
317327 else :
318- self .requests_kwargs .setdefault (
319- "headers" , {"User-Agent" : setting .DEFAULT_USERAGENT }
320- )
328+ self .custom_ua = True
321329
322330 # 代理
323331 proxies = self .requests_kwargs .get ("proxies" , - 1 )
@@ -329,6 +337,8 @@ def make_requests_kwargs(self):
329337 break
330338 else :
331339 log .debug ("暂无可用代理 ..." )
340+ else :
341+ self .custom_proxies = True
332342
333343 def get_response (self , save_cached = False ):
334344 """
0 commit comments