《Python爬蟲精進》第9關項目

《Python爬蟲精進》第9關作業要求:寫一個程序使瀏覽器自動完成以下工作:

首先,登錄博客人人都是蜘蛛俠。其次,在搜索框中查找《未來已來(三)——同九義何汝秀》,並進入該文章發表一個評論,這個評論中必須要帶有“selenium”這個詞。

首先,複習一下第9關所學知識,以下是第9關的主要知識點:

其次,將瀏覽器要完成的工作分爲幾個小步驟:

  1. 打開瀏覽器,登錄網站“人人都是蜘蛛俠”;
  2. 輸入用戶名、輸入密碼;
  3. 點擊登錄;
  4. 查找“未來已來(三)——同九義何汝秀”;
  5. 點擊搜索按鈕;
  6. 點擊“未來已來(三)——同九義何汝秀”,進入該文章的鏈接;
  7. 在評論區中輸入要發表的評論;
  8. 點擊“發表評論”按鈕;
  9. 關閉瀏覽器。

接下來,我將對以上步驟的具體操作展開詳細的介紹,其實也是我本人的筆記。

  1. 打開瀏覽器,登錄網站“人人都是蜘蛛俠”。此時需要通過driver.get()登錄“人人都是蜘蛛俠”網站,鏈接爲:https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php
  2. 輸入用戶名、輸入密碼。此時需要查看網頁的頁面元素,快捷鍵“F12”。點擊“Elements”→點擊左邊的小箭頭(快捷鍵“Ctrl+Shift+C”)→點擊【戶名或電子郵件地址】方的方框,此時觀察右邊元素中高亮的地方,如下圖所示。此時需要用到driver.find_element_by_id()函數獲取【戶名或電子郵件地址】的方框,並用.send_keys()完成【輸入用戶名】這一步驟。【輸入密碼】也是一樣的操作。
  3. 點擊登錄。同樣通過查找網頁元素找到【登錄】按鈕的元素,操作過程與上一步基本一樣。唯一不同的是,按鈕需要通過點擊才能跳轉頁面,因此此時需要用到.click()函數。
  4. 【查找“未來已來(三)——同九義何汝秀”】、【點擊搜索按鈕】與第2、3步的操作相似,但是需要注意的是,搜索框位於元素的class屬性中,因此需要用driver.find_element_by_class_name()函數獲取方框,搜索按鈕也是一樣。如下入所示。
  5. 【點擊“未來已來(三)——同九義何汝秀”,進入該文章的鏈接】則改爲driver.find_element_by_link_text()函數,因爲進入文章鏈接需要通過點擊超鏈接文本。點擊超鏈接、輸入評論內容、點擊發表評論與上述操作一樣,在此不再展開。
  6. 最後關閉瀏覽器只需要driver。close()函數即可。

具體程序如下:

from selenium import webdriver
import time

driver = webdriver.Chrome()     # 創建一個Chrome瀏覽器的webdriver實例

#   1、打開瀏覽器,登錄網站“人人都是蜘蛛俠”
url_1 = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'
driver.get(url_1)
time.sleep(2)

#   2、輸入用戶名
user_name = driver.find_element_by_id('user_login')     # 通過元素的id選擇  在elemen中查找div中p的id
user_name.send_keys('spiderman')                        # 模擬按鍵輸入,自動寫表單
time.sleep(1)

#   3、輸入密碼
user_password = driver.find_element_by_id('user_pass')
user_password.send_keys('crawler334566')
time.sleep(1)

#   4、點擊登錄按鈕
submit = driver.find_element_by_id('wp-submit')
submit.click()              # 點擊元素
time.sleep(2)

#   5、在搜索框中輸入“未來已來(三)——同九義何汝秀”
search = driver.find_element_by_class_name('search-field')          # 通過元素的class屬性選擇
search.send_keys('未來已來(三)——同九義何汝秀')
time.sleep(1)

#   6、點擊搜索按鈕
search_submit = driver.find_element_by_class_name('search-submit')
search_submit.click()
time.sleep(1)

#   7、在搜索結果中找到目標文章的超鏈接,並點擊該超鏈接打開文章頁面
url_2 = driver.find_element_by_link_text('未來已來(三)——同九義何汝秀')    # 通過鏈接文本獲得超鏈接
url_2.click()
# time.sleep(2)

#   8、在評論區域輸入“路過測試selenium”
comment_text = driver.find_element_by_tag_name('textarea')      # 通過元素的標籤名稱選擇   id前面的標籤名稱
comment_text.send_keys('路過測試selenium')
time.sleep(2)

#   9、點擊發布評論按鈕
comment_submit = driver.find_element_by_id('submit')
comment_submit.click()
time.sleep(2)

#   10、關閉瀏覽器
driver.close()



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章