python爬虫類3日目小項目拡張無id繰り返しcssname取得データとselenium操作

1779 ワード

3日目の基本的な小さなプログラムを書いて、動的なウェブサイトを完成して、中はすべてここでこれらのデータの核心を持つものを貼ってpyqueryとwebdriverです

#  classname     
def text_index_by_classname(pclassname,cclassname):
    print('  classname     ')
    html = browser.page_source
    doc = pq(html)
    items = doc(pclassname).items()
    i = 1;
    for item in items:
        yield {
            'text': item.find(cclassname).text(),
            'xh' : i
        }
        i = i + 1


classnameのすべてのclassnameの内容を取得し、番号付けします.
#         
    for item in text_index_by_classname('###','### '):
        print(item)
        if item.__getitem__('text') == '  ':
            index=item.__getitem__('xh')
            lm = wait.until(EC.element_to_be_clickable(
                (By.CSS_SELECTOR,
                 'body > ######('+str(index)+')')))
            lm.click()
    if index==0:
        print('       ')


ここで取り出して順番番号に基づいてwebdriverを用いて要素操作を行うのも、ほとんどのidラベルのない操作を解決するためであり、これを行う前にページ全体のcss selectorを評価分析してから行う
  browser.switch_to.frame(browser.find_element_by_name('framename'))
    je = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#cssselector)))
    je.send_keys('2')


    tz=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,cssselector  ))
    tz.click()

    browser.switch_to.default_content()   #   

フレームのコンテンツ操作を切り出すには
def wait_jz(cssselector):
    wait.until(EC.element_to_be_clickable(
        (By.CSS_SELECTOR,cssselector)))

最も重要なのは、ページのロードが完了してから操作することです.
重要な差は多くありませんが、このプロジェクトの自動ログインは他のサイトほど簡単ではありません.まだ成功していません.次はフロントインタフェースを勉強します.スレッドモニタリングは24時間モニタリングします.後2日で完成することを望んでいます.