第五天 selenium請求庫(第四天內容補充)

weixin_30788239發表於2020-04-05
selenium請求庫
1.什麼是請求庫
selenium是一個自動測試工具,它可以通過程式碼去實現驅動瀏覽器自動執行響應的操作
2.為什麼要使用selenium?
主要使用selenium的目的是為了跳過登入驗證
3.安裝與使用
- 下載驅動器
http://npm.taobao.org/mirrors/chromedriver/2.38
- 下載selenium請求庫
- 修改下載源為清華源
- D:\python36\lib\site-packages\pip\models\index.py
- PyPI = Index('https://pypi.tuna.tsinghua.edu.cn/simple')
- pip3 install selenium 或settings中安裝
from selenium import webdriver
# 驅動瀏覽器的兩種方式
# 第一種直接去Scripts資料夾中查詢驅動
# webdriver.Chrome()
# 第二種填寫驅動路徑
# webdriver.chrome(r'E:\Python\Scripts\chromedriver.exe')
# - 安裝谷歌瀏覽器
# ……

# 匯入鍵盤Keys
from selenium.webdriver.common.keys import Keys
import time
driver=webdriver.Chrome()

# 檢測程式碼塊
try:
    # 隱式等待,等待標籤載入
    driver.implicitly_wait(10)

    # 往京東主頁傳送請求
    driver.get('https://www.jd.com/')

    # 通過id查詢input輸入框
    input_tag = driver.find_element_by_id('key')

    # send_keys為當前標籤傳值
    input_tag.send_keys('中華字典')

    # 按鍵盤的Enter鍵
    input_tag.send_keys(Keys.ENTER)

    time.sleep(3)

    '''
    爬取京東商品資訊:
        公仔
            名稱
            url
            價格
            評價
    '''
    # element 找一個
    # elements 找多個
    # 查詢所有的商品列表
    good_list = driver.find_elements_by_class_name('gl-item')
    # print(good_list)

    # 迴圈遍歷每一個商品
    for good in good_list:
        # 通過屬性選擇器查詢商品詳情頁url
        # url
        good_url = good.find_element_by_css_selector('.p-img a').get_attribute('href')
        print(good_url)

        # 名稱
        good_name = good.find_element_by_css_selector('.p-name em').text
        print(good_name)

        # 價格
        good_price = good.find_element_by_class_name('p-price').text
        print(good_price)

        # 評價數
        good_commit = good.find_element_by_class_name('p-commit').text
        print(good_commit)


        str1 = f'''
        url: {good_url}
        名稱: {good_name}
        價格: {good_price}
        評價: {good_commit}
        \n
        '''
        # 把商品資訊寫入文字中
        with open('jd.txt', 'a', encoding='utf-8') as f:
            f.write(str1)


    time.sleep(10)

# 捕獲異常
except Exception as e:
    print(e)

# 最後都會把驅動瀏覽器關閉掉
finally:
    driver.close()

 

轉載於:https://www.cnblogs.com/requiem/p/11105167.html

相關文章