鱼C论坛

 找回密码
 立即注册
查看: 2421|回复: 3

【python】selenium使用过程中遇到一个问题

[复制链接]
发表于 2018-10-12 18:15:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想用selenium访问中国天气网,并且搜索某个城市的天气,最后输出天气信息,但是我用page_source获取到的页面代码和我想要的页面代码不一样
from pyquery import PyQuery as pq
from selenium import webdriver

city = input('请输入要查询的城市:')
browser = webdriver.Chrome()
browser.get('http://www.weather.com.cn/')
input = browser.find_element_by_id('txtZip')
input.send_keys(city)
button = browser.find_element_by_class_name('input-btn')
button.click()
html = browser.page_source
# browser.close()
doc = pq(html)
tem = doc('.tem')
# print(city+'现在是:'+tem.text()+'摄氏度')
print(html)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-12 21:03:09 | 显示全部楼层
你得到的数据是'http://www.weather.com.cn/'而不是新页面的数据
需要使用browser.get("新链接")再获取一次页面才能成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-12 21:04:47 | 显示全部楼层
【已解决】用selenium打开窗口A,在A窗口上继续用click打开窗口B,搜索B窗口里内容。
   如果此时定位元素会发现仍是在A窗口上操作,若想在B窗口上操作,需要切换窗口:
(1)用handles = browser.window_handles来获取浏览器此时打开的所有窗口的handle
(2)用browser.switch_to.window(handles[-1])切换窗口至最新打开的窗口
【另外】注意browser.close()函数是用来关闭窗口的,而browser.quit()函数是关闭浏览器的
【代码】
from pyquery import PyQuery as pq
from selenium import webdriver
import time

city = input('请输入要查询的城市:')
browser = webdriver.Chrome()
browser.get('http://www.weather.com.cn/')
browser.find_element_by_id('txtZip').send_keys(city)
browser.find_element_by_class_name('input-btn').click()
time.sleep(2)
handles = browser.window_handles
browser.switch_to.window(handles[-1])
tem = browser.find_element_by_class_name('tem').text
print(city+'现在是:'+tem+'摄氏度')
browser.quit()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-12 21:08:03 | 显示全部楼层
爱学习的喵 发表于 2018-10-12 21:03
你得到的数据是'http://www.weather.com.cn/'而不是新页面的数据
需要使用browser.get("新链接")再获取一 ...

已经解决了,切换一下窗口就OK了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 05:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表