Procházet zdrojové kódy

修改赛果球队名错误

Your Name před 6 roky
rodič
revize
4cd3747679
4 změnil soubory, kde provedl 532 přidání a 470 odebrání
  1. 249 200
      hg3535/.idea/workspace.xml
  2. 8 8
      hg3535/pipeline/saiguo.py
  3. 274 261
      hg3535/spiders/saiguo.py
  4. 1 1
      hg3535/utils/helper.py

+ 249 - 200
hg3535/.idea/workspace.xml

@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="7fa42e97-ddea-4404-91db-5a9ccc162649" name="Default Changelist" comment="">
+    <list default="true" id="7fa42e97-ddea-4404-91db-5a9ccc162649" name="Default Changelist" comment="修改赛果球队名错误">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pipeline/saiguo.py" beforeDir="false" afterPath="$PROJECT_DIR$/pipeline/saiguo.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/spiders/saiguo.py" beforeDir="false" afterPath="$PROJECT_DIR$/spiders/saiguo.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/utils/helper.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/helper.py" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -13,7 +15,7 @@
   </component>
   <component name="CoverageDataManager">
     <SUITE FILE_PATH="coverage/hg3535$items.coverage" NAME="items Coverage Results" MODIFIED="1554291398794" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
-    <SUITE FILE_PATH="coverage/hg3535$main.coverage" NAME="main Coverage Results" MODIFIED="1569478865457" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+    <SUITE FILE_PATH="coverage/hg3535$main.coverage" NAME="main Coverage Results" MODIFIED="1569575721275" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
     <SUITE FILE_PATH="coverage/hg3535$change.coverage" NAME="change Coverage Results" MODIFIED="1567749757856" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
     <SUITE FILE_PATH="coverage/hg3535$hgjieshu.coverage" NAME="hgjieshu Coverage Results" MODIFIED="1558494720094" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/spiders" />
     <SUITE FILE_PATH="coverage/hg3535$halffull.coverage" NAME="halffull Coverage Results" MODIFIED="1554544334424" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/spiders" />
@@ -42,11 +44,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/spiders/saiguo.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-561">
-              <caret line="198" column="58" selection-start-line="198" selection-start-column="58" selection-end-line="198" selection-end-column="58" />
+            <state relative-caret-position="685">
+              <caret line="49" column="80" lean-forward="true" selection-start-line="49" selection-start-column="80" selection-end-line="49" selection-end-column="80" />
               <folding>
                 <element signature="e#0#15#0" expanded="true" />
               </folding>
@@ -55,36 +57,24 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/spiders/roll_bangqiu.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-4204">
-              <caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
-              <folding>
-                <element signature="e#46#61#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/pipeline/zuqiu.py">
+        <entry file="file://$PROJECT_DIR$/utils/helper.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="63" column="8" lean-forward="true" selection-start-line="63" selection-start-column="8" selection-end-line="63" selection-end-column="14" />
+            <state relative-caret-position="143">
+              <caret line="13" column="34" lean-forward="true" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="34" />
               <folding>
-                <element signature="e#0#15#0" expanded="true" />
+                <element signature="e#0#14#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/spiders/roll_zuqiu.py">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/pipeline/saiguo.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="720">
-              <caret line="44" column="45" selection-start-line="44" selection-start-column="45" selection-end-line="44" selection-end-column="45" />
+            <state relative-caret-position="299">
+              <caret line="25" column="33" lean-forward="true" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
               <folding>
-                <element signature="e#38#53#0" expanded="true" />
+                <element signature="e#18#32#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -93,7 +83,7 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/middlewares.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="163">
+            <state relative-caret-position="73">
               <caret line="137" selection-start-line="137" selection-end-line="137" />
             </state>
           </provider>
@@ -110,7 +100,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>Roll_Wangqiu</find>
       <find>Roll_Lanqiu</find>
       <find>score_home</find>
       <find>odds_onlys</find>
@@ -140,6 +129,7 @@
       <find>ybhs_3</find>
       <find>TN</find>
       <find>one_dishes_home</find>
+      <find>成功</find>
     </findStrings>
     <replaceStrings>
       <replace>&quot;&quot;</replace>
@@ -215,16 +205,8 @@
         <option value="$PROJECT_DIR$/spiders/zq_jieshu.py" />
         <option value="$PROJECT_DIR$/pipelines.py" />
         <option value="$PROJECT_DIR$/.gitignore" />
-        <option value="$PROJECT_DIR$/utils/helper.py" />
         <option value="$PROJECT_DIR$/pipeline/ball_func.py" />
-        <option value="$PROJECT_DIR$/items.py" />
         <option value="$PROJECT_DIR$/change.py" />
-        <option value="$PROJECT_DIR$/pipeline/wangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/roll_wangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/jieshu.py" />
-        <option value="$PROJECT_DIR$/pipeline/bangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/roll_bangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/lanqiu.py" />
         <option value="$PROJECT_DIR$/spiders/bangqiu.py" />
         <option value="$PROJECT_DIR$/spiders/jieshu.py" />
         <option value="$PROJECT_DIR$/spiders/lanqiu.py" />
@@ -233,26 +215,34 @@
         <option value="$PROJECT_DIR$/spiders/liansai.py" />
         <option value="$PROJECT_DIR$/spiders/wangqiu.py" />
         <option value="$PROJECT_DIR$/spiders/roll_bangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/guanjun.py" />
         <option value="$PROJECT_DIR$/spiders/roll_wangqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/roll_zuqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/saiguo.py" />
-        <option value="$PROJECT_DIR$/pipeline/zuqiu.py" />
         <option value="$PROJECT_DIR$/spiders/roll_zuqiu.py" />
         <option value="$PROJECT_DIR$/spiders/zuqiu.py" />
-        <option value="$PROJECT_DIR$/pipeline/roll_lanqiu.py" />
-        <option value="$PROJECT_DIR$/settings.py" />
         <option value="$PROJECT_DIR$/spiders/other_saiguo.py" />
         <option value="$PROJECT_DIR$/main.py" />
+        <option value="$PROJECT_DIR$/items.py" />
+        <option value="$PROJECT_DIR$/settings.py" />
+        <option value="$PROJECT_DIR$/pipeline/zuqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/wangqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/roll_zuqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/roll_wangqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/roll_lanqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/roll_bangqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/lanqiu.py" />
+        <option value="$PROJECT_DIR$/pipeline/jieshu.py" />
+        <option value="$PROJECT_DIR$/pipeline/guanjun.py" />
+        <option value="$PROJECT_DIR$/pipeline/bangqiu.py" />
+        <option value="$PROJECT_DIR$/utils/helper.py" />
         <option value="$PROJECT_DIR$/spiders/saiguo.py" />
+        <option value="$PROJECT_DIR$/pipeline/saiguo.py" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-563" />
-    <option name="y" value="67" />
-    <option name="width" value="1609" />
-    <option name="height" value="1100" />
+    <option name="x" value="569" />
+    <option name="y" value="34" />
+    <option name="width" value="1268" />
+    <option name="height" value="1055" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
@@ -260,6 +250,7 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -277,11 +268,15 @@
               <item name="hg3535" type="462c0819:PsiDirectoryNode" />
               <item name="spiders" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="hg3535" type="b2602c69:ProjectViewProjectNode" />
+              <item name="hg3535" type="462c0819:PsiDirectoryNode" />
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
+            </path>
           </expand>
           <select />
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -592,20 +587,7 @@
       <workItem from="1568970792599" duration="3014000" />
       <workItem from="1569036019518" duration="1144000" />
       <workItem from="1569287788365" duration="57203000" />
-    </task>
-    <task id="LOCAL-00045" summary="updata">
-      <created>1567588210355</created>
-      <option name="number" value="00045" />
-      <option name="presentableId" value="LOCAL-00045" />
-      <option name="project" value="LOCAL" />
-      <updated>1567588210355</updated>
-    </task>
-    <task id="LOCAL-00046" summary="updata">
-      <created>1567678420455</created>
-      <option name="number" value="00046" />
-      <option name="presentableId" value="LOCAL-00046" />
-      <option name="project" value="LOCAL" />
-      <updated>1567678420455</updated>
+      <workItem from="1569552848728" duration="18328000" />
     </task>
     <task id="LOCAL-00047" summary="updata">
       <created>1567680209050</created>
@@ -936,11 +918,25 @@
       <option name="project" value="LOCAL" />
       <updated>1569407801286</updated>
     </task>
-    <option name="localTasksCounter" value="94" />
+    <task id="LOCAL-00094" summary="足球,篮球赛果抓取规则更新">
+      <created>1569572362667</created>
+      <option name="number" value="00094" />
+      <option name="presentableId" value="LOCAL-00094" />
+      <option name="project" value="LOCAL" />
+      <updated>1569572362667</updated>
+    </task>
+    <task id="LOCAL-00095" summary="添加球类赛果,接口提交">
+      <created>1569572474935</created>
+      <option name="number" value="00095" />
+      <option name="presentableId" value="LOCAL-00095" />
+      <option name="project" value="LOCAL" />
+      <updated>1569572474935</updated>
+    </task>
+    <option name="localTasksCounter" value="96" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="2002819000" />
+    <option name="totallyTimeSpent" value="2021147000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -955,12 +951,12 @@
     <frame x="-8" y="-8" width="1936" height="1066" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.71173847" visible="true" weight="0.16204691" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.71173847" visible="true" weight="0.15778251" />
       <window_info id="Structure" order="1" sideWeight="0.2882615" side_tool="true" weight="0.1108742" />
       <window_info id="Favorites" order="2" sideWeight="0.5013405" side_tool="true" weight="0.108208954" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32832617" />
-      <window_info anchor="bottom" id="Debug" order="2" sideWeight="0.49573562" weight="0.30364805" />
+      <window_info anchor="bottom" id="Debug" order="2" sideWeight="0.49573562" weight="0.22424893" />
       <window_info anchor="bottom" id="Cvs" order="3" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="4" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="5" weight="0.32832617" />
@@ -969,8 +965,8 @@
       <window_info anchor="bottom" id="Database Changes" order="8" />
       <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.5042644" side_tool="true" weight="0.2725322" />
       <window_info anchor="bottom" x="22" y="376" width="1876" height="298" id="Terminal" order="10" sideWeight="0.49307036" weight="0.15987125" />
-      <window_info anchor="bottom" id="Python Console" order="11" sideWeight="0.49946696" weight="0.37017167" />
-      <window_info active="true" anchor="bottom" id="Run" order="12" sideWeight="0.87473345" visible="true" weight="0.2027897" />
+      <window_info anchor="bottom" id="Python Console" order="11" sideWeight="0.49946696" weight="0.26180258" />
+      <window_info anchor="bottom" id="Run" order="12" sideWeight="0.87473345" visible="true" weight="0.23927039" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -1077,7 +1073,8 @@
     <MESSAGE value="更新" />
     <MESSAGE value="更改爬取url域名" />
     <MESSAGE value="足球,篮球赛果抓取规则更新" />
-    <option name="LAST_COMMIT_MESSAGE" value="足球,篮球赛果抓取规则更新" />
+    <MESSAGE value="添加球类赛果,接口提交" />
+    <option name="LAST_COMMIT_MESSAGE" value="添加球类赛果,接口提交" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -1122,16 +1119,6 @@
           <line>37</line>
           <option name="timeStamp" value="216" />
         </line-breakpoint>
-        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
-          <url>file://$PROJECT_DIR$/spiders/roll_lanqiu.py</url>
-          <line>602</line>
-          <option name="timeStamp" value="220" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
-          <url>file://$PROJECT_DIR$/spiders/roll_lanqiu.py</url>
-          <line>601</line>
-          <option name="timeStamp" value="221" />
-        </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/pipeline/lanqiu.py</url>
           <line>237</line>
@@ -1139,7 +1126,7 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/pipeline/roll_zuqiu.py</url>
-          <line>654</line>
+          <line>651</line>
           <option name="timeStamp" value="258" />
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -1194,9 +1181,74 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/pipeline/roll_lanqiu.py</url>
-          <line>120</line>
+          <line>118</line>
           <option name="timeStamp" value="279" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>109</line>
+          <option name="timeStamp" value="282" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/pipeline/saiguo.py</url>
+          <line>30</line>
+          <option name="timeStamp" value="284" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/pipeline/saiguo.py</url>
+          <line>40</line>
+          <option name="timeStamp" value="285" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/pipeline/saiguo.py</url>
+          <line>61</line>
+          <option name="timeStamp" value="286" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/pipeline/saiguo.py</url>
+          <line>83</line>
+          <option name="timeStamp" value="287" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/pipeline/saiguo.py</url>
+          <line>103</line>
+          <option name="timeStamp" value="288" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/utils/helper.py</url>
+          <line>11</line>
+          <option name="timeStamp" value="289" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>131</line>
+          <option name="timeStamp" value="292" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>202</line>
+          <option name="timeStamp" value="295" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>203</line>
+          <option name="timeStamp" value="296" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>193</line>
+          <option name="timeStamp" value="297" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>198</line>
+          <option name="timeStamp" value="298" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/spiders/saiguo.py</url>
+          <line>38</line>
+          <option name="timeStamp" value="299" />
+        </line-breakpoint>
       </breakpoints>
       <default-breakpoints>
         <breakpoint type="python-exception">
@@ -1224,13 +1276,6 @@
     </expressions>
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://C:/venv/Lib/site-packages/pymongo/mongo_client.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-16140">
-          <caret line="95" column="8" selection-start-line="95" selection-start-column="8" selection-end-line="95" selection-end-column="8" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://C:/venv/Lib/site-packages/twisted/internet/defer.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-730">
@@ -1296,13 +1341,6 @@
     <entry file="file://$PROJECT_DIR$/jianting.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/items.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="138">
-          <caret line="478" column="14" lean-forward="true" selection-start-line="478" selection-start-column="14" selection-end-line="478" selection-end-column="14" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/log/zuqiu_2019_9_6.log" />
     <entry file="file://C:/venv/Lib/site-packages/bson/son.py">
       <provider selected="true" editor-type-id="text-editor">
@@ -1348,26 +1386,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/jieshu.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="153">
-          <caret line="46" column="18" lean-forward="true" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" />
-          <folding>
-            <element signature="e#18#33#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/bangqiu.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="340">
-          <caret line="35" column="33" lean-forward="true" selection-start-line="35" selection-start-column="33" selection-end-line="35" selection-end-column="33" />
-          <folding>
-            <element signature="e#0#15#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/spiders/liansai.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="400">
@@ -1408,143 +1426,171 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/guanjun.py">
+    <entry file="file://$PROJECT_DIR$/spiders/roll_wangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="520">
-          <caret line="33" column="36" selection-start-line="33" selection-start-column="36" selection-end-line="33" selection-end-column="36" />
+        <state relative-caret-position="2680">
+          <caret line="144" column="27" selection-start-line="144" selection-start-column="27" selection-end-line="144" selection-end-column="27" />
           <folding>
-            <element signature="e#18#32#0" expanded="true" />
+            <element signature="e#24#39#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/roll_wangqiu.py">
+    <entry file="file://$PROJECT_DIR$/spiders/lanqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1120">
-          <caret line="63" selection-start-line="63" selection-end-line="65" selection-end-column="40" />
+        <state relative-caret-position="1400">
+          <caret line="79" column="65" selection-start-line="79" selection-start-column="65" selection-end-line="79" selection-end-column="65" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#24#35#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/roll_wangqiu.py">
+    <entry file="file://$PROJECT_DIR$/spiders/wangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2680">
-          <caret line="144" column="27" selection-start-line="144" selection-start-column="27" selection-end-line="144" selection-end-column="27" />
+        <state relative-caret-position="135">
+          <caret line="75" column="35" selection-start-line="75" selection-start-column="35" selection-end-line="75" selection-end-column="35" />
           <folding>
-            <element signature="e#24#39#0" expanded="true" />
+            <element signature="e#48#59#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/roll_bangqiu.py">
+    <entry file="file://$PROJECT_DIR$/not_roll.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5060">
-          <caret line="260" selection-start-line="260" selection-end-line="260" />
+        <state>
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#0#11#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/lanqiu.py">
+    <entry file="file://C:/venv/Lib/site-packages/scrapy/http/response/text.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1400">
-          <caret line="79" column="65" selection-start-line="79" selection-start-column="65" selection-end-line="79" selection-end-column="65" />
-          <folding>
-            <element signature="e#24#35#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="145">
+          <caret line="118" selection-start-line="118" selection-end-line="118" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/wangqiu.py">
+    <entry file="file://$PROJECT_DIR$/spiders/roll_bangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2080">
-          <caret line="114" column="58" selection-start-line="114" selection-start-column="58" selection-end-line="114" selection-end-column="58" />
+        <state relative-caret-position="460">
+          <caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#46#61#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/lanqiu.py">
+    <entry file="file://$PROJECT_DIR$/guanjun.sh">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/spiders/roll_zuqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="273">
-          <caret line="25" lean-forward="true" selection-start-line="25" selection-end-line="25" />
+        <state relative-caret-position="-10403">
+          <caret line="44" column="45" selection-start-line="44" selection-start-column="45" selection-end-line="44" selection-end-column="45" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#38#53#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/saiguo.py">
+    <entry file="file://$PROJECT_DIR$/spiders/roll_lanqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="3" column="14" lean-forward="true" selection-start-line="3" selection-start-column="14" selection-end-line="3" selection-end-column="14" />
+        <state relative-caret-position="271">
+          <caret line="483" selection-start-line="483" selection-end-line="484" selection-end-column="56" />
+          <folding>
+            <element signature="e#24#39#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/roll_zuqiu.py">
+    <entry file="file://$PROJECT_DIR$/spiders/zuqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-80">
-          <caret line="32" column="14" selection-start-line="32" selection-start-column="14" selection-end-line="32" selection-end-column="14" />
+        <state relative-caret-position="-977">
+          <caret line="24" column="95" selection-start-line="24" selection-start-column="95" selection-end-line="24" selection-end-column="95" />
           <folding>
-            <element signature="e#18#33#0" expanded="true" />
+            <element signature="e#24#35#0" expanded="true" />
+            <element signature="e#22357#24538#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/wangqiu.py">
+    <entry file="file://$PROJECT_DIR$/settings.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="135">
-          <caret line="75" column="35" selection-start-line="75" selection-start-column="35" selection-end-line="75" selection-end-column="35" />
+        <state relative-caret-position="419">
+          <caret line="159" column="13" lean-forward="true" selection-start-line="159" selection-start-column="13" selection-end-line="159" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/items.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="602">
+          <caret line="486" column="12" lean-forward="true" selection-start-line="486" selection-start-column="4" selection-end-line="486" selection-end-column="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pipeline/zuqiu.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="11780">
+          <caret line="589" column="45" selection-start-line="589" selection-start-column="45" selection-end-line="589" selection-end-column="45" />
           <folding>
-            <element signature="e#48#59#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/not_roll.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/wangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state>
+        <state relative-caret-position="200">
+          <caret line="10" column="96" selection-start-line="10" selection-start-column="96" selection-end-line="10" selection-end-column="96" />
           <folding>
-            <element signature="e#0#11#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/zuqiu.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/roll_zuqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="24" column="95" selection-start-line="24" selection-start-column="95" selection-end-line="24" selection-end-column="95" />
+        <state relative-caret-position="180">
+          <caret line="9" column="110" selection-start-line="9" selection-start-column="110" selection-end-line="9" selection-end-column="110" />
           <folding>
-            <element signature="e#24#35#0" expanded="true" />
+            <element signature="e#18#33#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/settings.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/roll_wangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2960">
-          <caret line="148" column="56" selection-start-line="148" selection-start-column="56" selection-end-line="148" selection-end-column="56" />
+        <state relative-caret-position="5476">
+          <caret line="278" column="41" selection-start-line="278" selection-start-column="41" selection-end-line="278" selection-end-column="41" />
+          <folding>
+            <element signature="e#0#15#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/helper.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/roll_bangqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="13" selection-start-line="13" selection-end-line="13" />
+        <state relative-caret-position="236">
+          <caret line="249" column="39" selection-start-line="249" selection-start-column="39" selection-end-line="249" selection-end-column="39" />
           <folding>
-            <element signature="e#0#14#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/pipeline/roll_lanqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="12" selection-start-line="12" selection-end-line="12" />
+        <state relative-caret-position="-5724">
+          <caret line="6" column="43" selection-start-line="6" selection-start-column="43" selection-end-line="6" selection-end-column="43" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pipeline/bangqiu.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="260">
+          <caret line="289" column="59" lean-forward="true" selection-start-line="289" selection-start-column="59" selection-end-line="289" selection-end-column="59" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
@@ -1553,31 +1599,34 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/spiders/other_saiguo.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="460">
+        <state relative-caret-position="-440">
           <caret line="40" column="34" lean-forward="true" selection-start-line="37" selection-end-line="42" selection-end-column="48" />
         </state>
       </provider>
     </entry>
-    <entry file="file://C:/venv/Lib/site-packages/scrapy/http/response/text.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/lanqiu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="145">
-          <caret line="118" selection-start-line="118" selection-end-line="118" />
+        <state relative-caret-position="4796">
+          <caret line="272" column="41" selection-start-line="272" selection-start-column="41" selection-end-line="272" selection-end-column="41" />
+          <folding>
+            <element signature="e#0#15#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/roll_lanqiu.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/guanjun.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="165">
-          <caret line="43" selection-start-line="43" selection-end-line="43" />
+        <state relative-caret-position="2480">
+          <caret line="124" column="45" selection-start-line="124" selection-start-column="45" selection-end-line="124" selection-end-column="45" />
           <folding>
-            <element signature="e#24#39#0" expanded="true" />
+            <element signature="e#18#32#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/main.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="400">
+        <state relative-caret-position="328">
           <caret line="20" column="49" lean-forward="true" selection-start-line="20" selection-start-column="49" selection-end-line="20" selection-end-column="49" />
           <folding>
             <element signature="e#0#10#0" expanded="true" />
@@ -1585,49 +1634,49 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/middlewares.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/jieshu.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="163">
-          <caret line="137" selection-start-line="137" selection-end-line="137" />
+        <state relative-caret-position="980">
+          <caret line="49" column="23" lean-forward="true" selection-start-line="49" selection-start-column="23" selection-end-line="49" selection-end-column="23" />
+          <folding>
+            <element signature="e#18#33#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/roll_bangqiu.py">
+    <entry file="file://$PROJECT_DIR$/middlewares.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-4204">
-          <caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
-          <folding>
-            <element signature="e#46#61#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="73">
+          <caret line="137" selection-start-line="137" selection-end-line="137" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/roll_zuqiu.py">
+    <entry file="file://$PROJECT_DIR$/utils/helper.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="720">
-          <caret line="44" column="45" selection-start-line="44" selection-start-column="45" selection-end-line="44" selection-end-column="45" />
+        <state relative-caret-position="143">
+          <caret line="13" column="34" lean-forward="true" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="34" />
           <folding>
-            <element signature="e#38#53#0" expanded="true" />
+            <element signature="e#0#14#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pipeline/zuqiu.py">
+    <entry file="file://$PROJECT_DIR$/spiders/saiguo.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="63" column="8" lean-forward="true" selection-start-line="63" selection-start-column="8" selection-end-line="63" selection-end-column="14" />
+        <state relative-caret-position="685">
+          <caret line="49" column="80" lean-forward="true" selection-start-line="49" selection-start-column="80" selection-end-line="49" selection-end-column="80" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/spiders/saiguo.py">
+    <entry file="file://$PROJECT_DIR$/pipeline/saiguo.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-561">
-          <caret line="198" column="58" selection-start-line="198" selection-start-column="58" selection-end-line="198" selection-end-column="58" />
+        <state relative-caret-position="299">
+          <caret line="25" column="33" lean-forward="true" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#18#32#0" expanded="true" />
           </folding>
         </state>
       </provider>

+ 8 - 8
hg3535/pipeline/saiguo.py

@@ -18,15 +18,15 @@ class Jieshuqiupipeline(object):
         self.db = self.mongo[M_DB]
         # cls = redis.Redis(host='192.168.0.110', port=6379, db=0)
 
-    # @defer.inlineCallbacks
-    # def process_item(self, item, spider):
-    #     out = defer.Deferred()
-    #     reactor.callInThread(self._do_calculation, item, out)
-    #     yield out
+    @defer.inlineCallbacks
+    def process_item(self, item, spider):
+        out = defer.Deferred()
+        reactor.callInThread(self._do_calculation, item, out)
+        yield out
         # defer.returnValue(item)
 
-    def process_item(self, item, spider):
-    # def _do_calculation(self, item, out):
+    # def process_item(self, item, spider):
+    def _do_calculation(self, item, out):
         logger = logging.getLogger(__name__)
         pt = item['pt']
         league_id = item["league_id"]
@@ -118,4 +118,4 @@ class Jieshuqiupipeline(object):
             else:
                 logger.warning('{},赛事结果状态接口异常提交失败, {}'.format('bq', res))
                 logger.warning(post_data)
-        # reactor.callFromThread(out.callback, item)
+        reactor.callFromThread(out.callback, item)

+ 274 - 261
hg3535/spiders/saiguo.py

@@ -38,285 +38,298 @@ class HgjieshuSpider(scrapy.Spider):
             if pt == 1:
                 league_ids = response.xpath('//div[@class="rt-l-bar football"]/@id').extract()
                 league_names = response.xpath('//div[@class="rt-l-bar football"]/span[@class="comp-txt"]/text()').extract()
-                for index in range(len(league_ids)):
-                    league_id = league_ids[index]
-                    league_name = league_names[index]
-                    response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
-                    data = etree.HTML(response_data)
-                    # 球队名
-                    team_names = data.xpath('//div[@class="rt-event"]/@title')
-                    # 全场
-                    f_scores = data.xpath('.//div[contains(@class, "rt-ft ")]')
-                    # 上半场
-                    h_scores = data.xpath('.//div[contains(@class, "rt-ht ")]')
-                    # 时间
-                    stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
-                    # 子集玩法
-                    # odd_names = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[2]')
-                    # 子集玩法结果
-                    # odd_plays = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[3]/span')
-                    match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
-                    odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody[2]')
-                    for y in range(len(odd_datas)):
-                        match_id = match_ids[y].replace('e-', '')
-                        league_id = league_id.replace('cmp-', '')
-                        team_name = team_names[y].replace(' ', '').split('-')
+                if league_ids:
+                    for index in range(len(league_ids)):
+                        league_id = league_ids[index]
+                        league_name = league_names[index]
+                        response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
+                        data = etree.HTML(response_data)
+                        # 球队名
+                        # team_names = data.xpath('//div[@class="rt-event"]/@title')
+                        h_names = data.xpath('//div[@class="rt-event"]/span[1]')
+                        a_names = data.xpath('//div[@class="rt-event"]/span[3]')
+                        # 全场
+                        f_scores = data.xpath('.//div[contains(@class, "rt-ft ")]')
+                        # 上半场
+                        h_scores = data.xpath('.//div[contains(@class, "rt-ht ")]')
+                        # 时间
+                        stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
                         # 子集玩法
-                        odd_names = odd_datas[y].xpath('.//tr/td[2]')
+                        # odd_names = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[2]')
                         # 子集玩法结果
-                        odd_plays = odd_datas[y].xpath('.//tr/td[3]/span')
-                        # 主队
-                        h_name = team_name[0]
-                        # 客队
-                        a_name = team_name[1]
-                        # 上半场
-                        h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 全场
-                        f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 正则时间匹配规则
-                        pattern = re.compile(r"\d{1,3}:\d{1,3}")
-                        match_time = pattern.findall(stimes[y])[0]
-                        play_datas = []
-                        if odd_names:
-                            for i in range(len(odd_names)):
-                                name = odd_names[i].text
-                                plays = odd_plays[i].xpath('text()')
-                                if len(plays) == 2:
-                                    play = '{}&&{}'.format(plays[0], plays[1])
-                                else:
-                                    play = plays[0]
-                                play_datas.append({'play_name': name, 'play_result': play})
-                        item = Hgsaiguo()
-                        item["league_id"] = league_id
-                        item["league_name"] = league_name
-                        item["match_id"] = match_id
-                        item["match_date"] = match_date
-                        item["match_time"] = match_time
-                        item["home_team"] = h_name
-                        item["guest_team"] = a_name
-                        item["score_half"] = h_score
-                        item["score_full"] = f_score
-                        item["play_data"] = play_datas
-                        item["pt"] = pt
-                        item["page"] = page
-                        yield item
+                        # odd_plays = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[3]/span')
+                        match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
+                        odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody[2]')
+                        for y in range(len(odd_datas)):
+                            match_id = match_ids[y].replace('e-', '')
+                            league_id = league_id.replace('cmp-', '')
+                            # 子集玩法
+                            odd_names = odd_datas[y].xpath('.//tr/td[2]')
+                            # 子集玩法结果
+                            odd_plays = odd_datas[y].xpath('.//tr/td[3]/span')
+                            # 主队
+                            h_name = h_names[y].text
+                            # 客队
+                            a_name = a_names[y].text
+                            # 上半场
+                            h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 全场
+                            f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 正则时间匹配规则
+                            pattern = re.compile(r"\d{1,3}:\d{1,3}")
+                            match_time = pattern.findall(stimes[y])[0]
+                            play_datas = []
+                            if odd_names:
+                                for i in range(len(odd_names)):
+                                    name = odd_names[i].text
+                                    plays = odd_plays[i].xpath('text()')
+                                    if len(plays) == 2:
+                                        play = '{}&&{}'.format(plays[0], plays[1])
+                                    else:
+                                        play = plays[0]
+                                    play_datas.append({'play_name': name, 'play_result': play})
+                            item = Hgsaiguo()
+                            item["league_id"] = league_id
+                            item["league_name"] = league_name
+                            item["match_id"] = match_id
+                            item["match_date"] = match_date
+                            item["match_time"] = match_time
+                            item["home_team"] = h_name
+                            item["guest_team"] = a_name
+                            item["score_half"] = h_score
+                            item["score_full"] = f_score
+                            item["play_data"] = play_datas
+                            item["pt"] = pt
+                            item["page"] = page
+                            yield item
+                else:
+                    return
 
             # 篮球赛果
             if pt == 2:
                 league_ids = response.xpath('//div[@class="rt-l-bar sportHasQuater"]/@id').extract()
                 league_names = response.xpath('//div[@class="rt-l-bar sportHasQuater"]/span[@class="comp-txt"]/text()').extract()
-                for index in range(len(league_ids)):
-                    league_id = league_ids[index]
-                    league_name = league_names[index]
-                    response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
-                    data = etree.HTML(response_data)
-                    # 球队名
-                    team_names = data.xpath('//div[@class="rt-event"]/@title')
-                    # 全场
-                    f_scores = data.xpath('.//div[@class="rt-qft"]')
-                    # 上半场
-                    h_scores = data.xpath('.//div[@class="rt-qt1"]')
-                    # 下半场
-                    x_scores = data.xpath('.//div[@class="rt-qt2"]')
-                    # 时间
-                    stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
-                    match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
-                    odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody[2]')
-                    for y in range(len(odd_datas)):
-                        match_id = match_ids[y].replace('e-', '')
-                        league_id = league_id.replace('cmp-', '')
-                        team_name = team_names[y].replace(' ', '').split('-')
-                        # 子集玩法
-                        child_data = odd_datas[y].xpath('./tr')
-                        # 主队
-                        h_name = team_name[0]
-                        # 客队
-                        a_name = team_name[1]
-                        # 上半场
-                        h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                if league_ids:
+                    for index in range(len(league_ids)):
+                        league_id = league_ids[index]
+                        league_name = league_names[index]
+                        response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
+                        data = etree.HTML(response_data)
+                        # 球队名
+                        h_names = data.xpath('//div[@class="rt-event"]/span[1]')
+                        a_names = data.xpath('//div[@class="rt-event"]/span[3]')
                         # 全场
-                        f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                        f_scores = data.xpath('.//div[@class="rt-qft"]')
+                        # 上半场
+                        h_scores = data.xpath('.//div[@class="rt-qt1"]')
                         # 下半场
-                        x_score = x_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 正则时间匹配规则
-                        pattern = re.compile(r"\d{1,3}:\d{1,3}")
-                        match_time = pattern.findall(stimes[y])[0]
-                        play_datas = []
-                        if child_data:
-                            h_dict = {'team_name': h_name}
-                            a_dict = {'team_name': a_name}
-                            for i in range(len(child_data)):
-                                if i == 0:
-                                    h_datas = child_data[i].xpath('.//td/table/tbody/tr[3]/td[@class="r-odds"]')
-                                    a_datas = child_data[i].xpath('.//td/table/tbody/tr[4]/td[@class="r-odds"]')
-                                    rule = {0: "sc_1th", 1: "sc_2th", 2: "sc_3th", 3: "sc_4th", 4: "sc_other"}
-                                    if h_datas and a_datas:
-                                        for x in range(len(h_datas)):
-                                            # 主队节得分
-                                            h_data = h_datas[x].text.replace(' ', '').replace('\r\n', '')
-                                            h_dict[rule[x]] = h_data
-                                            # 客队节得分
-                                            a_data = a_datas[x].text.replace(' ', '').replace('\r\n', '')
-                                            a_dict[rule[x]] = a_data
-                                else:
-                                    # 子玩法名
-                                    child_name = child_data[i].xpath('.//td[contains(@class, "r-bt ")]/text()')[0].replace(' ', '').replace('\r\n', '')
-                                    # 子玩法结果
-                                    child_play = child_data[i].xpath('.//td[@class="r-odds"]/span[@class="prop"]/text()')[0]
-                                    play_datas.append({"play_name": child_name, "play_result": child_play})
-                            play_datas.append(h_dict)
-                            play_datas.append(a_dict)
-                        item = Hgsaiguo()
-                        item["league_id"] = league_id
-                        item["league_name"] = league_name
-                        item["match_id"] = match_id
-                        item["match_date"] = match_date
-                        item["match_time"] = match_time
-                        item["home_team"] = h_name
-                        item["guest_team"] = a_name
-                        item["score_half"] = h_score
-                        item["score_result"] = f_score
-                        item["play_data"] = play_datas
-                        item["pt"] = pt
-                        item["page"] = page
-                        item["score_below"] = x_score
-                        yield item
+                        x_scores = data.xpath('.//div[@class="rt-qt2"]')
+                        # 时间
+                        stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
+                        match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
+                        odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody[2]')
+                        for y in range(len(odd_datas)):
+                            match_id = match_ids[y].replace('e-', '')
+                            league_id = league_id.replace('cmp-', '')
+                            # 子集玩法
+                            child_data = odd_datas[y].xpath('./tr')
+                            # 主队
+                            h_name = h_names[y].text
+                            # 客队
+                            a_name = a_names[y].text
+                            # 上半场
+                            h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 全场
+                            f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 下半场
+                            x_score = x_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 正则时间匹配规则
+                            pattern = re.compile(r"\d{1,3}:\d{1,3}")
+                            match_time = pattern.findall(stimes[y])[0]
+                            play_datas = []
+                            if child_data:
+                                h_dict = {'team_name': h_name}
+                                a_dict = {'team_name': a_name}
+                                for i in range(len(child_data)):
+                                    if i == 0:
+                                        h_datas = child_data[i].xpath('.//td/table/tbody/tr[3]/td[@class="r-odds"]')
+                                        a_datas = child_data[i].xpath('.//td/table/tbody/tr[4]/td[@class="r-odds"]')
+                                        rule = {0: "sc_1th", 1: "sc_2th", 2: "sc_3th", 3: "sc_4th", 4: "sc_other"}
+                                        if h_datas and a_datas:
+                                            for x in range(len(h_datas)):
+                                                # 主队节得分
+                                                h_data = h_datas[x].text.replace(' ', '').replace('\r\n', '')
+                                                h_dict[rule[x]] = h_data
+                                                # 客队节得分
+                                                a_data = a_datas[x].text.replace(' ', '').replace('\r\n', '')
+                                                a_dict[rule[x]] = a_data
+                                    else:
+                                        # 子玩法名
+                                        child_name = child_data[i].xpath('.//td[contains(@class, "r-bt ")]/text()')[0].replace(' ', '').replace('\r\n', '')
+                                        # 子玩法结果
+                                        child_play = child_data[i].xpath('.//td[@class="r-odds"]/span[@class="prop"]/text()')[0]
+                                        play_datas.append({"play_name": child_name, "play_result": child_play})
+                                play_datas.append(h_dict)
+                                play_datas.append(a_dict)
+                            item = Hgsaiguo()
+                            item["league_id"] = league_id
+                            item["league_name"] = league_name
+                            item["match_id"] = match_id
+                            item["match_date"] = match_date
+                            item["match_time"] = match_time
+                            item["home_team"] = h_name
+                            item["guest_team"] = a_name
+                            item["score_half"] = h_score
+                            item["score_result"] = f_score
+                            item["play_data"] = play_datas
+                            item["pt"] = pt
+                            item["page"] = page
+                            item["score_below"] = x_score
+                            yield item
+                else:
+                    return
 
             # 网球赛果
             if pt == 3:
                 league_ids = response.xpath('//div[@class="rt-l-bar tennis"]/@id').extract()
                 league_names = response.xpath('//div[@class="rt-l-bar tennis"]/span[@class="comp-txt"]/text()').extract()
-                for index in range(len(league_ids)):
-                    league_id = league_ids[index]
-                    league_name = league_names[index]
-                    response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
-                    data = etree.HTML(response_data)
-                    # 球队名
-                    team_names = data.xpath('//div[@class="rt-event"]/@title')
-                    # 赛果
-                    f_scores = data.xpath('.//div[@class="rt-set"]')
-                    # 时间
-                    stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
-                    # 赛事id
-                    match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
-                    # 详细赛果信息, 比分等
-                    odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody')
-                    for y in range(len(odd_datas)):
-                        match_id = match_ids[y].replace('e-', '')
-                        league_id = league_id.replace('cmp-', '')
-                        team_name = team_names[y].replace(' ', '').split('-')
-                        # 子集玩法
-                        child_data = odd_datas[y].xpath('./tr')
-                        # 主队
-                        h_name = team_name[0]
-                        # 客队
-                        a_name = team_name[1]
-                        # 全场
-                        f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 正则时间匹配规则
-                        pattern = re.compile(r"\d{1,3}:\d{1,3}")
-                        match_time = pattern.findall(stimes[y])[0]
-                        play_datas = []
-                        if child_data:
-                            rule = {0: "sc_1th", 1: "sc_2th", 2: "sc_3th", 3: "sc_4th", 4: "sc_5th", 5: "game_num", 6: "disc_num"}
-                            h_dict = {'team_name': h_name}
-                            a_dict = {'team_name': a_name}
-                            for i in range(len(child_data)):
-                                if i == 0:
-                                    h_datas = child_data[i].xpath('.//tbody/tr[3]/td[contains(@class, "r-odds")]')
-                                    a_datas = child_data[i].xpath('.//tbody/tr[4]/td[contains(@class, "r-odds")]')
-                                    if h_datas and a_datas:
-                                        for x in range(len(h_datas)):
-                                            # 主队节得分
-                                            h_data = h_datas[x].text.replace(' ', '').replace('\r\n', '')
-                                            h_dict[rule[x]] = h_data
-                                            # 客队节得分
-                                            a_data = a_datas[x].text.replace(' ', '').replace('\r\n', '')
-                                            a_dict[rule[x]] = a_data
-                                else:
-                                    # 子玩法名
-                                    child_name = child_data[i].xpath('.//td[contains(@class, "r-bt ")]/text()')[0].replace(' ', '').replace('\r\n', '')
-                                    # 子玩法结果
-                                    child_play = child_data[i].xpath('.//td[@class="r-odds"]/span[@class="prop"]')[0]
-                                    play = child_play.xpath('string(.)')
-                                    play_datas.append({"play_name": child_name, "play_result": play})
-                            play_datas.append(h_dict)
-                            play_datas.append(a_dict)
-                        item = Hgsaiguo()
-                        item["league_id"] = league_id
-                        item["league_name"] = league_name
-                        item["match_id"] = match_id
-                        item["match_date"] = match_date
-                        item["match_time"] = match_time
-                        item["home_team"] = h_name
-                        item["guest_team"] = a_name
-                        item["score_result"] = f_score
-                        item["play_data"] = play_datas
-                        item["pt"] = pt
-                        item["page"] = page
-                        yield item
+                if league_ids:
+                    for index in range(len(league_ids)):
+                        league_id = league_ids[index]
+                        league_name = league_names[index]
+                        response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
+                        data = etree.HTML(response_data)
+                        # 球队名
+                        h_names = data.xpath('//div[@class="rt-event"]/span[1]')
+                        a_names = data.xpath('//div[@class="rt-event"]/span[3]')
+                        # 赛果
+                        f_scores = data.xpath('.//div[@class="rt-set"]')
+                        # 时间
+                        stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
+                        # 赛事id
+                        match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
+                        # 详细赛果信息, 比分等
+                        odd_datas = data.xpath('//div[contains(@class, "rt-sub ")]/table/tbody')
+                        for y in range(len(odd_datas)):
+                            match_id = match_ids[y].replace('e-', '')
+                            league_id = league_id.replace('cmp-', '')
+                            # 子集玩法
+                            child_data = odd_datas[y].xpath('./tr')
+                            # 主队
+                            h_name = h_names[y].text
+                            # 客队
+                            a_name = a_names[y].text
+                            # 全场
+                            f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 正则时间匹配规则
+                            pattern = re.compile(r"\d{1,3}:\d{1,3}")
+                            match_time = pattern.findall(stimes[y])[0]
+                            play_datas = []
+                            if child_data:
+                                rule = {0: "sc_1th", 1: "sc_2th", 2: "sc_3th", 3: "sc_4th", 4: "sc_5th", 5: "game_num", 6: "disc_num"}
+                                h_dict = {'team_name': h_name}
+                                a_dict = {'team_name': a_name}
+                                for i in range(len(child_data)):
+                                    if i == 0:
+                                        h_datas = child_data[i].xpath('.//tbody/tr[3]/td[contains(@class, "r-odds")]')
+                                        a_datas = child_data[i].xpath('.//tbody/tr[4]/td[contains(@class, "r-odds")]')
+                                        if h_datas and a_datas:
+                                            for x in range(len(h_datas)):
+                                                # 主队节得分
+                                                h_data = h_datas[x].text.replace(' ', '').replace('\r\n', '')
+                                                h_dict[rule[x]] = h_data
+                                                # 客队节得分
+                                                a_data = a_datas[x].text.replace(' ', '').replace('\r\n', '')
+                                                a_dict[rule[x]] = a_data
+                                    else:
+                                        # 子玩法名
+                                        child_name = child_data[i].xpath('.//td[contains(@class, "r-bt ")]/text()')[0].replace(' ', '').replace('\r\n', '')
+                                        # 子玩法结果
+                                        child_play = child_data[i].xpath('.//td[@class="r-odds"]/span[@class="prop"]')[0]
+                                        play = child_play.xpath('string(.)')
+                                        play_datas.append({"play_name": child_name, "play_result": play})
+                                play_datas.append(h_dict)
+                                play_datas.append(a_dict)
+                            item = Hgsaiguo()
+                            item["league_id"] = league_id
+                            item["league_name"] = league_name
+                            item["match_id"] = match_id
+                            item["match_date"] = match_date
+                            item["match_time"] = match_time
+                            item["home_team"] = h_name
+                            item["guest_team"] = a_name
+                            item["score_result"] = f_score
+                            item["play_data"] = play_datas
+                            item["pt"] = pt
+                            item["page"] = page
+                            yield item
+                else:
+                    return
 
             # 棒球赛果
             if pt == 4:
                 league_ids = response.xpath('//div[@class="rt-l-bar baseball"]/@id').extract()
                 league_names = response.xpath('//div[@class="rt-l-bar baseball"]/span[@class="comp-txt"]/text()').extract()
-                for index in range(len(league_ids)):
-                    league_id = league_ids[index]
-                    league_name = league_names[index]
-                    response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
-                    data = etree.HTML(response_data)
-                    # 球队名
-                    team_names = data.xpath('//div[@class="rt-event"]/@title')
-                    # 全场
-                    f_scores = data.xpath('.//div[@class="rt-ft"]')
-                    # 上半场
-                    h_scores = data.xpath('.//div[@class="rt-ht"]')
-                    # 时间
-                    stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
-                    # 子集玩法
-                    # odd_names = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[2]')
-                    # 子集玩法结果
-                    # odd_plays = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[3]/span')
-                    match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
-                    odd_datas = data.xpath('//div[contains(@class, "rt-sub")]/table/tbody')
-                    for y in range(len(odd_datas)):
-                        match_id = match_ids[y].replace('e-', '')
-                        league_id = league_id.replace('cmp-', '')
-                        team_name = team_names[y].replace(' ', '').split('-')
+                if league_ids:
+                    for index in range(len(league_ids)):
+                        league_id = league_ids[index]
+                        league_name = league_names[index]
+                        response_data = response.xpath('//div[@id="dt-{}"]'.format(league_id)).extract_first()
+                        data = etree.HTML(response_data)
+                        # 球队名
+                        h_names = data.xpath('//div[@class="rt-event"]/span[1]')
+                        a_names = data.xpath('//div[@class="rt-event"]/span[3]')
+                        # 全场
+                        f_scores = data.xpath('.//div[@class="rt-ft"]')
+                        # 上半场
+                        h_scores = data.xpath('.//div[@class="rt-ht"]')
+                        # 时间
+                        stimes = data.xpath('//div[@class="rt-event"]/../div[1]/span/text()')
                         # 子集玩法
-                        odd_names = odd_datas[y].xpath('.//tr/td[2]')
+                        # odd_names = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[2]')
                         # 子集玩法结果
-                        odd_plays = odd_datas[y].xpath('.//tr/td[3]/span')
-                        # 主队
-                        h_name = team_name[0]
-                        # 客队
-                        a_name = team_name[1]
-                        # 上半场
-                        h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 全场
-                        f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                        # 正则时间匹配规则
-                        pattern = re.compile(r"\d{1,3}:\d{1,3}")
-                        match_time = pattern.findall(stimes[y])[0]
-                        play_datas = []
-                        if odd_names:
-                            for i in range(len(odd_names)):
-                                # 子玩法名
-                                name = odd_names[i].text.replace(' ', '').replace('\r\n', '')
-                                # 子玩法赛果
-                                play = odd_plays[i].xpath('string(.)').replace(' ', '').replace('\r\n', '')
-                                play_datas.append({"play_name": name, "play_result": play})
-                        item = Hgsaiguo()
-                        item["league_id"] = league_id
-                        item["league_name"] = league_name
-                        item["match_id"] = match_id
-                        item["match_date"] = match_date
-                        item["match_time"] = match_time
-                        item["home_team"] = h_name
-                        item["guest_team"] = a_name
-                        item["score_half"] = h_score
-                        item["score_full"] = f_score
-                        item["play_data"] = play_datas
-                        item["pt"] = pt
-                        item["page"] = page
-                        yield item
+                        # odd_plays = data.xpath('//div[@class="rt-sub rt-data-hide"]/table/tbody[2]/tr/td[3]/span')
+                        match_ids = data.xpath('//div[@class="flex-wrap"]/../div[1]/@id')
+                        odd_datas = data.xpath('//div[contains(@class, "rt-sub")]/table/tbody')
+                        for y in range(len(odd_datas)):
+                            match_id = match_ids[y].replace('e-', '')
+                            league_id = league_id.replace('cmp-', '')
+                            # 子集玩法
+                            odd_names = odd_datas[y].xpath('.//tr/td[2]')
+                            # 子集玩法结果
+                            odd_plays = odd_datas[y].xpath('.//tr/td[3]/span')
+                            # 主队
+                            h_name = h_names[y].text
+                            # 客队
+                            a_name = a_names[y].text
+                            # 上半场
+                            h_score = h_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 全场
+                            f_score = f_scores[y].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                            # 正则时间匹配规则
+                            pattern = re.compile(r"\d{1,3}:\d{1,3}")
+                            match_time = pattern.findall(stimes[y])[0]
+                            play_datas = []
+                            if odd_names:
+                                for i in range(len(odd_names)):
+                                    # 子玩法名
+                                    name = odd_names[i].text.replace(' ', '').replace('\r\n', '')
+                                    # 子玩法赛果
+                                    play = odd_plays[i].xpath('string(.)').replace(' ', '').replace('\r\n', '')
+                                    play_datas.append({"play_name": name, "play_result": play})
+                            item = Hgsaiguo()
+                            item["league_id"] = league_id
+                            item["league_name"] = league_name
+                            item["match_id"] = match_id
+                            item["match_date"] = match_date
+                            item["match_time"] = match_time
+                            item["home_team"] = h_name
+                            item["guest_team"] = a_name
+                            item["score_half"] = h_score
+                            item["score_full"] = f_score
+                            item["play_data"] = play_datas
+                            item["pt"] = pt
+                            item["page"] = page
+                            yield item
+                else:
+                    return

+ 1 - 1
hg3535/utils/helper.py

@@ -14,7 +14,7 @@ class Helper(object):
                 return data.json()
         except requests.exceptions.RequestException as e:
             print(e)
-
+            return {'status': 0}
     @staticmethod
     def genearte_MD5(params, pt):
         # 创建md5对象