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



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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