day03(、Jingdongは製品情報をクロール解析ライブラリ)

1.クロール商品情報Jingdongは

機能:すべての情報がクロールされるまで次のクロールクロールの完了後、Jingdongは上のすべての製品情報をクロールされる「マーフィーの法則」を検索

セレンインポートwebdriverを
 から selenium.webdriver.common.keys インポートキー
 から selenium.webdriver.common.byのインポートによって
 インポート時間
 DEF :get_good(ドライバ) = 1
     トライ
        time.sleep( 5 
        js_code = ''」
                ウィンドウ。 scrollTo(0,5000)
        '' ' 
        driver.execute_script(js_code)
        time.sleep( 5 
        good_list = driver.find_elements_by_class_name(' GL-アイテム' のために良いgood_list:
            good_name = good.find_element_by_css_selector(' .P名EM ' ).textの
            good_url = good.find_element_by_css_selector(' .P-名A ').get_attribute(' HREF " 
            good_price = good.find_element_by_class_name(' P-価格' ).textの
            good_commit = good.find_element_by_class_name(' P-コミット' ).textの
            good_content = F'' ' 
            数:{数} 
            製品名:{good_name} 
            製品リンク:{good_url} 
            商品価格:{good_price} 
            製品レビュー:good_commit} { 
            \ N- 
            ' '' 
            印刷(good_content)
            オープンと(' jd3.text '' A '、エンコード= ' UTF-8 ' )、F AS:
                f.write(good_content) + = 1。
         プリント" 正常に書き込まれた商品情報!! " 
        next_tag = driver.find_element_by_class_name('PN-次' 
        next_tag.click()
        time.sleep( 5 
        get_good(ドライバ)
    最後に
        driver.close()
の場合 __name__ == ' __main__ " 
    ドライバは = webdriver.Chrome()
     してみてください
        driver.implicitly_wait( 10 
        driver.get(' https://www.jd.com/ ' 
        input_tag = driver.find_element_by_id(' キー' 
        input_tag.send_keys(' 墨菲定律" 
        input_tag.send_keys(Keys.ENTER)
        get_good(ドライバ)
    最後に
        driver.close()

部分的な結果は、スクリーンショットを示しています。

2.要素は、指定された場所にドラッグ

2.1インスタントドラッグ

セレン輸入webdriverを
 から selenium.webdriver.common.keys インポートキー
 から selenium.webdriverのインポート  ActionChains
 インポート時の
ドライバー = webdriver.Chromeを()
 してみてください
    driver.implicitly_wait( 10 
    driver.get(HTTPS://www.runoobを。 COM / try.php?ファイル名= jqueryui-API-ドロップ可能な/してみてください' 
    time.sleep( 5 
    driver.switch_to.frame(' iframeResult " 
    time.sleep( 1
    ソース = driver.find_element_by_id(' ドラッグ' 
    目標 = driver.find_element_by_id(' ドロップ可能' 
    ActionChains(ドライバ).drag_and_drop(ソース、ターゲット).perform()
    time.sleep( 10 最後に
    driver.close()

2.2動きの遅いです

セレン輸入webdriverを
 から selenium.webdriver.common.keys インポートキー
 から selenium.webdriverのインポート  ActionChains
 インポート時の
ドライバー = webdriver.Chromeを()
 してみてください
    driver.implicitly_wait( 10 
    driver.get(HTTPS://www.runoobを。 COM /試す/ try.php?ファイル名= jqueryui-API-ドロップ可能な' 
    time.sleep( 5 
    driver.switch_to.frame(' iframeResult " 
    time.sleep( 1 
    ソース = driver.find_element_by_id(' ドラッグ' 
    目標 = driver.find_element_by_id(' ドロップ可能' 
    までの距離 = target.location [ ' X ' ] -source.location [ ' X ' ] 
    ActionChains(ドライバ).click_and_hold(ソース).perform ()
    S = 0
     一方の< 距離:
        ActionChains(ドライバ).move_by_offset(XOFFSET = 5、YOFFSET = 0).perform()
        S + = 5 
        time.sleep( 0.1 
    ActionChains(ドライバ).release()()を実行する。
    time.sleep( 10 最後に
    driver.close()

3.BeautifulSoup4

html_doc = ""」
<HTML> <HEAD> <TITLE>ヤマネの物語</ TITLE> </ HEAD> 
<BODY> 
<Pクラス= "姉妹"> <B> $、37 </ B> </ P> 

<Pクラス=「物語」ID =「P」>一度3人の妹があった時間に、自分の名前だったと
<a href="http://example.com/elsie" class="sister">エルシー</ A >、
<a href="http://example.com/lacie" class="sister" id="link2">レイシー</a>と
<HREF = "http://example.com/tillie"クラス= "姉妹" ID = "LINK3"> Tillie </a>に; 
。そして、彼らはの底に住んでいただけでなく、</ P> 

<Pクラス= "物語"> ... </ P> 
""」
から BS4の輸入BeautifulSoup 
スープ = BeautifulSoup(html_doc、' lxmlの' 1.直接使用
#の印刷(soup.html)
#1 (タイプ(soup.html)の)印刷
#1 印刷(soup.a) 印刷(soup.p) 2は、名前タグ得る
#1 (soup.a.nameプリント)プロパティタグ3のGet 
#の印刷(soup.a.attrs) 印刷(soup.a.attrs [ 'のhref']) 印刷(soup.a.attrs [ 'クラス']) 4のGetタグテキストコンテンツ
#1 印刷(soup.p.text) 5ネストされた選択
#1 印刷(soup.html.body.p) 6子ノード、子孫ノード
#1 印刷(soup.p.children)#は、イテレータを返しますオブジェクト
#の印刷(一覧(soup.p.children)) 7。親、祖先ノードプリント(soup.b.parent) プリント(soup.b.parents) 印刷(リスト(soup.b.parents))

要約:

見つける:最初の外観を

find_all:すべて見つけます

名前---名札

マッチを見つけるためattrsに-----プロパティ

テキストマッチテキスト-----

タグ:

------グローバル文字列照合フィルタ文字列

定期的なフィルター------

         マッチングモジュールの再

------リストフィルタ

        リストに一致するデータ

------ BOOLフィルタ

      真の一致

フィルタ法------ 

      いくつかのプロパティのためにとプロパティを探す必要はありません

属性:

   -clas-

   -id-

 

おすすめ

転載: www.cnblogs.com/wsh123/p/11128059.html