编写python代码实现打开并登录网页、对网页进行点击、输入信息等操作

  当我们打开一个网页进行信息搜索时,少不了要对它进行点击和输入信息等操作,有的网页还可能需要你先登录才能开始其他操作。这篇博客就带大家来了解一下如何编写一段python代码实现打开并登录网页、对网页进行点击、输入信息等操作。
谷歌搜索引擎主页

0.准备工作

  在开始之前,我们需要一些准备工作,一个能够编写并运行python代码的IDE(如:IDLE、PyCharm)、安装Python第三方函数库 Selenium、安装浏览器驱动。如何安装Selenium、浏览器驱动以及相应的一些介绍,这里放一个 链接 仅供大家参考,这里需要 注意 的是你下载的浏览器驱动的版本和你使用的浏览器版本应该是对应的。

1.打开一个网页

  接下来我们开始第一步:打开一个网页,这里以baidu.com为例,在python源程序中输入并运行下列代码:

#引入selenium库中的 webdriver 模块
from selenium import webdriver

#打开谷歌浏览器
driver = webdriver.Chrome()
#打开百度搜索主页
driver.get('https://www.baidu.com')

运行结果如下:

百度搜索主页

2.在网页中输入信息

  以百度搜索主页为例,我们在使用时,需要在搜索框中输入我们需要搜索的信息,那我们怎么捕捉到页面中的搜索框并在其中输入信息呢?这时我们需要使用到selenium库中的 元素定位方法 ,这里我们希望通过 XPath 定位搜索框在网页中的 <input> 标签 ,调用find_element_by_xpath()方法,在参数中输入 路径表达式 来定位搜索框,代码如下:

'''
调用selenium库中的find_element_by_xpath()方法定位搜索框,
同时使用send_keys()方法在其中输入信息
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')

运行结果如下:
Search:this is a test

  那么大家现在可能会有一个疑问是,应该如何获取搜索框的路径表达式呢?我们按 F12 或右键打开网页的元素审查窗口,点击窗口顶部的元素选择按钮,之后选中搜索框,此时已定位到搜索框在网页中的 <input> 标签,右键选择Copy XPath即可。详细步骤看图:
获取搜索框的路径表达式

3.对网页进行点击

  在搜索框中输入将要搜索的信息之后,需要点击搜索按钮进行搜索,搜索按钮的路径表达式获取方式与步骤二一致,代码如下:

'''
调用selenium库中的find_element_by_xpath()方法定位搜索按钮,
同时使用click()方法对按钮进行点击
'''
driver.find_element_by_xpath('//*[@id="su"]').click()

运行结果如下:
Search_result
步骤①至③完整代码如下:

#引入selenium库中的 webdriver 模块
from selenium import webdriver

#打开谷歌浏览器
driver = webdriver.Chrome()
#打开百度搜索主页
driver.get('https://www.baidu.com')
'''
调用selenium库中的find_element_by_xpath()方法定位搜索框,
同时使用send_keys()方法在其中输入信息
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')
'''
调用selenium库中的find_element_by_xpath()方法定位搜索按钮,
同时使用click()方法对按钮进行点击
'''
driver.find_element_by_xpath('//*[@id="su"]').click()

4.打开并登录网页

  如果你对上述三个基础操作有了足够清楚的认识,那么如何实现打开并登录一个网页,你的心里一定有了一些想法,下面以登录 智慧树学习平台 为例,看看和你想的一样嘛?代码如下:

#引入selenium库中的 webdriver 模块
from selenium import webdriver
#引入time库
import time

#打开谷歌浏览器
driver = webdriver.Chrome()
#打开智慧树学习平台
driver.get('https://www.zhihuishu.com/')
'''
考虑到网页打开的速度取决于每个人的电脑和网速,
使用time库sleep()方法,让程序睡眠5秒
'''
time.sleep(5)
#在主页面点击登录按钮,进入登录页面
driver.find_element_by_xpath('//*[@id="notLogin"]/span/a[1]').click()
#输入账号和密码
driver.find_element_by_xpath('//*[@id="lUsername"]').send_keys('账号')
driver.find_element_by_xpath('//*[@id="lPassword"]').send_keys('密码')
#点击登录按钮
driver.find_element_by_xpath('//*[@id="f_sign_up"]/div[1]/span').click()

登录界面如下:

登录界面

  • 105
    点赞
  • 532
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
#coding:utf-8 import time import webbrowser as web import os import random #随机选择一个浏览器打开网页 def open_url_use_random_browser(): #定义要访问的地址 url='http://www.baidu.com' #定义浏览器路径 browser_paths=[r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe', #r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', #r'C:\Program Files (x86)\Opera\launcher.exe', #r'C:\Users\Administrator\AppData\Roaming\qianying\qianying.exe', #r'C:\Users\Administrator\AppData\Local\115Chrome\Application\115chrome.exe', #r'C:\Program Files (x86)\Internet Explorer\iexplore.exe', #r'D:\Program Files(x86)\SouExplorer\SogouExplorer\SogouExplorer.exe' ] #选择一个浏览器 def chose_a_browser_open_url(browser_path,url): #如果传入的浏览器位置不存在,使用默认的浏览器打开 if not browser_path: print ('using default browser to open') web.open_new_tab(url)#使用默认浏览器,就不再结束进程 else: #判断浏览器路径是否存在 if not os.path.exists(browser_path): print ('current browser path not exists,using default browser') #浏览器位置不存在就使用默认的浏览器打开 browser_path='' chose_a_browser_open_url(chose_a_browser_open_url,url) else: browser_task_name=browser_path.split('\\')[-1]#结束任务的名字 browser_name=browser_task_name.split('.')[0]#自定义的浏览器代号 print (browser_name) web.register(browser_name, None,web.BackgroundBrowser(browser_path)) web.get(browser_name).open_new_tab(url)#使用新注册的浏览器打开网页 print ('using %s browser open url successful' % browser_name) time.sleep(5)#等待打开浏览器 # kill_cmd='taskkill /f /IM '+browser_task_name#拼接结束浏览器进程的命令 # os.system(kill_cmd) #终结浏览器 browser_path=random.choice(browser_paths)#随机从浏览器中选择一个路径 chose_a_browser_open_url(browser_path,url) if __name__ == '__main__': print (''''' ***************************************** ** Welcome to python of browser ** ** Created on 2019-04-28 ** ** @author: Louise_ZOU ** ***************************************** ''') open_url_use_random_browser()
### 回答1: 实现这个功能需要用到 Python 的 requests 库和 BeautifulSoup 库。 首先,使用 requests 库发送登录请求,将用户名和密码作为参数传递给 POST 请求。例如: ```python import requests login_data = { 'username': 'your_username', 'password': 'your_password' } response = requests.post('http://example.com/login', data=login_data) ``` 接下来,我们需要使用 BeautifulSoup 库解析登录后的网页,找到我们需要点击的按钮。例如,假设我们要点击一个 id 为 "submit_button" 的按钮,可以使用如下代码: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') submit_button = soup.find('button', {'id': 'submit_button'}) ``` 最后,我们使用 requests 库发送 GET 请求,访问我们需要保存信息网页,并将响应内容保存到本地文件中。例如: ```python info_page_url = 'http://example.com/info_page' info_page_response = requests.get(info_page_url) with open('info.html', 'w') as f: f.write(info_page_response.text) ``` 完整代码如下: ```python import requests from bs4 import BeautifulSoup # 登录请求 login_data = { 'username': 'your_username', 'password': 'your_password' } response = requests.post('http://example.com/login', data=login_data) # 查找按钮 soup = BeautifulSoup(response.text, 'html.parser') submit_button = soup.find('button', {'id': 'submit_button'}) # 点击按钮并保存信息 info_page_url = 'http://example.com/info_page' info_page_response = requests.get(info_page_url) with open('info.html', 'w') as f: f.write(info_page_response.text) ``` 需要注意的是,具体实现可能会因为网页结构的不同而有所变化。 ### 回答2: 使用Python实现输入账号密码登录网页的方法如下: 1. 首先,可以使用`requests`库来发送HTTP请求,并使用`BeautifulSoup`库解析HTML内容。这两个库可以通过`pip`命令来安装。 2. 导入相应的库: ```python import requests from bs4 import BeautifulSoup ``` 3. 使用`requests`库发送POST请求进行登录,获取登录后的网页内容: ```python # 构造表单数据 data = { 'username': 'your_username', 'password': 'your_password' } # 发送POST请求登录 response = requests.post('https://example.com/login', data=data) # 获取登录后的网页内容 html = response.text ``` 4. 使用`BeautifulSoup`库解析网页内容,并找到需要点击的按钮选项: ```python # 创建BeautifulSoup对象 soup = BeautifulSoup(html, 'html.parser') # 定位按钮选项 button = soup.find('button', {'class': 'button-class'}) ``` 5. 使用`requests`库再次发送GET请求,点击按钮打开相关网页: ```python # 提取按钮链接 button_link = button['href'] # 打开链接 response = requests.get(button_link) # 获取打开后的网页内容 sub_html = response.text ``` 6. 最后,将特定信息保存到文件中: ```python # 打开文件,将特定信息保存 with open('result.txt', 'w', encoding='utf-8') as f: f.write(sub_html) ``` 以上是Python实现输入账号密码登录网页,并在点击打开后的网页保存特定信息的基本步骤。具体实现中,根据目标网站的登录方式、按钮选项的定位方式以及保存特定信息的方式可能会有所不同,需要根据具体情况进行调整。 ### 回答3: 要实现输入账号密码登录网页点击按钮选项,可以使用Python中的Selenium进行操作Selenium可以模拟用户在浏览器中的行为,包括输入账号密码、点击按钮等操作。 首先,需要安装Selenium库。使用pip命令安装,如下所示: ```shell pip install selenium ``` 然后,需要下载对应浏览器的驱动,Selenium使用这些驱动来实现与浏览器的通信。不同浏览器对应不同的驱动,如Chrome浏览器对应的是ChromeDriver。下载对应浏览器版本的驱动,并将驱动文件所在路径添加到系统的环境变量中。 接下来,编写Python代码实现登录网页点击按钮选项的操作。首先导入必要的库: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains ``` 创建一个浏览器实例,并打开登录网页: ```python # 创建浏览器实例 driver = webdriver.Chrome() # 打开登录网页 driver.get("登录网页的URL") ``` 接着,通过定位元素的方式,找到账号和密码输入框,并进行输入: ```python # 定位账号输入框 account_input = driver.find_element_by_id("账号输入框的ID") # 定位密码输入框 password_input = driver.find_element_by_id("密码输入框的ID") # 输入账号 account_input.send_keys("账号") # 输入密码 password_input.send_keys("密码") ``` 然后,找到登录按钮,并进行点击操作: ```python # 定位登录按钮 login_button = driver.find_element_by_id("登录按钮的ID") # 点击登录按钮 login_button.click() ``` 接下来,需要找到需要点击的按钮选项,并进行点击操作。这里以一个示例按钮为例: ```python # 定位按钮选项 button = driver.find_element_by_id("按钮选项的ID") # 点击按钮选项 button.click() ``` 最后,找到需要保存的特定信息所在的元素,并进行提取和保存操作。这里以保存文本信息为例: ```python # 定位特定信息所在的元素 info_element = driver.find_element_by_id("特定信息所在元素的ID") # 提取信息文本 info_text = info_element.text # 保存信息到文件 with open("保存信息文件的路径", "w") as f: f.write(info_text) ``` 以上就是用Python实现输入账号密码登录网页点击按钮选项和保存特定信息的基本步骤。根据实际情况,需要根据网页的HTML结构和元素的定位方式进行适当的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shiaohan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值