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()