前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Selenium写的Python天气爬虫

基于Selenium写的Python天气爬虫

作者头像
萌海无涯
发布2019-08-03 11:06:07
6530
发布2019-08-03 11:06:07
举报
文章被收录于专栏:萌海无涯

天气如此炎热!

写个爬虫降降温???

看完天气预报,嗯瞬间感觉热了好多!

学习还是要继续!

昨天没有说明XPath

今天现给补充点常用规则

XPath常用规则

表达式

描述

nodename

选取此节点的所有子节点

/

从当前节点选取直接子节点

//

从当前节点选取子孙节点

.

选取当前节点

..

选取当前节点的父节点

@

选取属性

这里列出了XPath的常用匹配规则,示例如下:

1

//title[@lang='eng']

这次和昨天不太一样的地方是,没有看到浏览器打开,

这个叫做无头浏览器。

一样可以加载动态网页生产的内容。

嗯,用来爬天气,大材小用。

不写了!太热了!

代码语言:javascript
复制
import timefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options

#  这个是一个用来控制chrome以无界面模式打开的浏览器#  创建一个参数对象,用来控制chrome以无界面的方式打开chrome_options = Options()#  这里固定写法 必须这么写chrome_options.add_argument('--headless')#  驱动路径 谷歌的驱动存放路径,上篇文章提供了下载地址path = r'C:\Users\Administrator\AppData\Local\Programs\Python\Python37\chromedriver.exe'
def tqyb(browser, date=7):    #  请求的url    url = 'http://www.weather.com.cn/weather/101200101.shtml'    #  访问url    browser.get(url)    #  定义一个空列表    tq = list()    date += 1    for i in range(1, date):        # xpath = r'//*[@id="hidden_title"]' # 一天天气        xpath = r'//*[@id="7d"]/ul/li[{}]'.format(i) #  7天天气        # 使用xpath提取数据,并添加到列表中        tq.append(browser.find_element_by_xpath(xpath).text)    #  返回一周天气的列表    return tq

#  创建浏览器对象browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)#  调用函数获取天气tq = tqyb(browser)#  打印天气列表print(tq)#  想要逐行打印可以使用for 循环for i in tq:    print(i)#  可以使用延时操作#  time.sleep(1)#  可以截图看下浏览器打开的内容#  browser.save_screenshot('tianqi.png')#  关闭标签browser.quit()#  退出刘览器#  browser.close()"""DeprecationWarning: use options instead of chrome_options  browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)查了下百度,给出的说明是,下面这样 ,意思就是不用管它!
根据源码的提示发现使用chrome_options 时会将chrome_options 值传给options,然后在给一个警告信息,根据错误信息已经源码的注解了解到未来options会取代chrome_options,所以我们只需要chrome_options改成options即可,该问题应该在最近的版本更改的目前我这边使用的是selenium==3.9.0,有兴趣的可以去看下官方文档,那个版本开始做的此项的修改。"""
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌海无涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档