2017-06-06 7 views
0

私はこのウェブサイトのページをインクリメントするために私のコードを取得しようとしていると私の代わりに、最初のページをやって、ループや増分にそれを得るように見える、とあきらめていないことができます。私が間違っていることはありますか?SeleniumとBeautifulSoupを使ってページを増やす方法は?

  if(pageExist is not None): 
       if(countitup != pageNum): 
       countitup = countitup + 1 
       driver.get('http://800notes.com/Phone.aspx/%s/%s' % (tele800,countitup)) 
       delay = 4 
       scamNum = soup.find_all(text=re.compile(r"Scam")) 
       spamNum = soup.find_all(text=re.compile(r"Call type: Telemarketer")) 
       debtNum = soup.find_all(text=re.compile(r"Call type: Debt Collector")) 
       hospitalNum = soup.find_all(text=re.compile(r"Hospital")) 
       scamCount = len(scamNum) + scamCount 
       spamCount = len(spamNum) + spamCount 
       debtCount = len(debtNum) + debtCount 
       hospitalCount = len(hospitalNum) + hospitalCount 
       block = soup.find(text=re.compile(r"OctoNet HTTP filter")) 
       extrablock = soup.find(text=re.compile(r"returning an unknown error")) 
       type(block) is str 
       type(extrablock) is str 
       if(block is not None or extrablock is not None): 
        print("\n Damn. Gimme an hour to fix this.") 
        time.sleep(2000) 

レポ:https://github.com/GarnetSunset/Haircuttery/tree/Experimental

答えて

0

pageExist is not Noneこれが問題のようです。 ページが[なし]であるかどうかをチェックするので、ほとんどの場合は決してなしになりません。 HTTP応答を確認する公式な方法はありませんが、このようなものを使用することができます。

if (soup.find_element_by_xpath('/html/body/p'[contains(text(),'400')]) 
#this will check if there's a 400 code in the p tag. 

または

if ('400' in soup.find_element_by_xpath('/html/body/p[1]').text) 

私は1つは、これを行うことができ、他の方法があると確信しているが、これはそれらの一つであるので、それが唯一の問題はここに

。その後、最初に を修正するとすぐにコードの残りの部分をインクリメントまたは保持することができます(の場合)。 、)素晴らしいコードカントーを、私はそれをテストしていないよので、

は、私は私のコードでは、いくつかのミス(構文)を作ったかもしれないが、ロジックが適用されます!

また代わりの神託の方法は isinstace

isinstance(block, str) 
isinstance(extrablock, str) 

time.sleep用として使用すると、2つの利用可能な方法、暗黙的および明示的な待ち時間があるWebDriverWait使用することができますを使用している

   type(block) is str 
      type(extrablock) is str 

、ご利用ください見てhere

+0

これは素晴らしいですが、あなたは私のコードでのぞき見を取る場合は、「pageExist」変数は、むしろ、400エラーのコメントがないことを示しているページ上の文字列を見ていません。私はそれがループに入るという事実を知っていますが、それは増加しません。 – GarnetSunset

+0

ああすみません、それはあなたが私たちを提供しているこの特定のコードの外誤りだ、変数内の1 '(pageExistがNoneでない)場合: (countitup = PAGENUM!)の場合:'イムは、それが何かを持って推測しますcountitupが常にpageNumと等しいこの2つ目では、私はそれを特定することはできませんが、それをチェックしたり、コードを提供したりしてください。 Add: 'countitup == pageNum'を試して、デバッグの目的でchromeで実行されているかどうか確認してください。 –

+0

これは奇妙な部分ですが、実行されますが、機能しない部分は増分だけです。 – GarnetSunset

関連する問題