python模拟浏览器打开百度首页并登录或者点击首页新闻并保存网页

首先不知道怎么模拟打开浏览器的童鞋先看我的上篇文章:http://blog.csdn.net/Trisyp/article/details/78688106
这篇文章涉及到前期配置,所以不会的一定要先查看下,配置完了之后再进一步学习本篇文章

这篇文章主要功能是模拟登录百度账号;或者点击首页新闻,同时保存和打印网页源码
过程就不多说,我尽量都加上了备注,直接附上代码:

模拟登陆完整代码如下:

from selenium import webdriver
import os
import time


#构造模拟浏览器
chromedriver = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver) #模拟打开浏览器
time.sleep(2)
url = "https://www.baidu.com/"
driver.get(url) #打开网址
# driver.maximize_window() #窗口最大化

#模拟登陆
time.sleep(2)
#driver.find_element_by_name('tj_login').click() #这样写报错:元素不可见,所以用万能的Xpath
driver.find_element_by_xpath('//*[@id="u1"]/a[7]').click() #点击登录按钮
time.sleep(2)
driver.find_element_by_name('userName').clear() #先清除输入框内容
driver.find_element_by_name('userName').send_keys(u'000000') #输入账号
time.sleep(1)
driver.find_element_by_name('password').clear()
driver.find_element_by_name('password').send_keys(u'000000') #输入密码
#因为需要验证码,所以输完账号密码之后就自己手动输入验证码(能力有限,目前还只能手动解决)


新闻点击完整代码如下:

from selenium import webdriver
import os
import time


#构造模拟浏览器
chromedriver = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver) #模拟打开浏览器
time.sleep(2)
url = "https://www.baidu.com/"
driver.get(url) #打开网址
# driver.maximize_window() #窗口最大化

#模拟登陆
time.sleep(2)
driver.find_element_by_xpath('//*[@id="u1"]/a[1]').click()
time.sleep(2)
html = driver.page_source
print(html)


#至于Xpath的获取大家应该都知道,这里也把方法贴一下(以首页新闻为例):进入百度首页之后,右键点击新闻选择检查就进入到开发者模式,同时就定位到了新闻对应的页面元素(即elements),右键该页面元素选择copy就可以看到有几个选项,选择其中的copy Xpath就行了,然后复制到你的代码中。

 

### 回答1: 你可以使用 python 的 Selenium 库来实现这个功能。下面是一个简单的例子: ``` from selenium import webdriver # 创建一个浏览器驱动 driver = webdriver.Firefox() # 访问百度首页 driver.get("https://www.baidu.com") # 截图 driver.save_screenshot("baidu.png") # 关闭浏览器 driver.quit() ``` 这段代码会打开一个 Firefox 浏览器,访问百度首页,并截图保存为 baidu.png。 ### 回答2: 使用Python登录百度网页并截图可以通过以下步骤实现: 1. 首先,我们需要安装selenium库来模拟浏览器操作,通过命令`pip install selenium`进行安装。 2. 导入selenium库的WebDriver模块,以及selenium中的Keys模块。 ``` from selenium import webdriver from selenium.webdriver.common.keys import Keys ``` 3. 创建WebDriver实例,指定使用的浏览器,这里以Chrome为例。 ``` driver = webdriver.Chrome() ``` 4. 打开百度登录页面。 ``` driver.get('https://www.baidu.com/') ``` 5. 定位到用户名和密码输入框,并模拟输入用户名和密码。 ``` username_input = driver.find_element_by_id('TANGRAM__PSP_4__userName') password_input = driver.find_element_by_id('TANGRAM__PSP_4__password') username_input.send_keys('your_username') password_input.send_keys('your_password') ``` 6. 模拟点击登录按钮。 ``` login_button = driver.find_element_by_id('TANGRAM__PSP_4__submit') login_button.click() ``` 7. 登录成功后,等待页面加载完成。 ``` driver.implicitly_wait(10) # 等待10秒钟页面加载完成 ``` 8. 使用selenium的save_screenshot方法进行页面截图。 ``` driver.save_screenshot('screenshot.png') ``` 9. 关闭浏览器实例。 ``` driver.quit() ``` 通过以上步骤,我们可以使用Python登录百度网页并截图。截图保存为screenshot.png文件。 ### 回答3: 使用Python登录百度网页并截图可以采用以下步骤: 1. 导入所需的库和模块,比如selenium、webdriver和PIL。 2. 初始化一个Chrome浏览器打开百度网页。 3. 定位用户名和密码的输入框,并使用send_keys()方法输入对应的用户名和密码。 4. 定位登录按钮,并使用click()方法模拟点击登录。 5. 使用sleep()方法等待页面加载完全。 6. 使用selenium的WebDriver方法进行截图,并保存为指定文件名。 7. 使用PIL的Image模块打开截图并显示或保存。 下面是一个简单的示例代码: ```python from selenium import webdriver from time import sleep from PIL import Image # 初始化Chrome浏览器 browser = webdriver.Chrome() # 打开百度网页 browser.get('https://www.baidu.com') # 定位用户名和密码输入框,并输入对应的用户名和密码 username_input = browser.find_element_by_id('username') username_input.send_keys('your_username') password_input = browser.find_element_by_id('password') password_input.send_keys('your_password') # 定位登录按钮,并点击 login_button = browser.find_element_by_id('login_button') login_button.click() # 等待页面加载完全 sleep(3) # 截图 browser.save_screenshot('screenshot.png') # 打开截图并显示 screenshot = Image.open('screenshot.png') screenshot.show() ``` 以上代码仅供参考,实际使用中可能需要根据百度页面的具体情况进行相应的调整。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Trisyp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值