Python简单两步实现天气爬虫采集器

说道爬虫大家或许感觉非常神秘,其实它没有我们想象的那么神奇(当然,google和baidu的爬虫是一场复杂和强大的,它的强大不是爬虫本身强大,而是后台的数据处理和数据挖掘算法非常强大),今天我们就来揭开它神秘的面纱。呵呵,简单两步就可以实现一个网页天气爬虫程序。。。

爬虫简单说来包括两个部分:1.获得网页文本信息。2.数据分析,获取其中我们想要的数据。

1、获得网页文本信息。

python在获取html方面十分方便,有了urllib库的帮助,只需要几行代码就可以实现我们需要的功能。

#引入urllib库import urllibdef getHtml(url):page = urllib.urlopen(url)html = page.read()page.close()return html

登录后复制

这里返回的就是网页的源代码,也就是html代码。

那我们如何从中得到我们想要的信息呢?那就需要用到在网页分析里面最最常用的工具 – 正则表达式 了。

立即学习“Python免费学习笔记(深入)”;

2、根据正则表达式等获得需要的内容。

使用正则表达式时需要仔细观察该网页信息的结构,并写出正确的正则表达式。

python正则表达式的使用也很简洁:

#引入正则表达式库import redef getWeather(html):reg = '(.*?).*?(.*?).*?(.*?)'weatherList = re.compile(reg).findall(html)return weatherList

登录后复制

说明:

其中reg是正则表达式,html是第一步获得的文本。findall的作用是找到html中所有符合正则匹配的字符串并存放到weatherList中。之后再枚举weatheList中的数据输出即可。

这里的正则表达式reg有两个地方要注意。

一个是“(.*?)”。只要是()中的内容都是我们将要获得的内容,如果有多个括号,那么findall的每个结果就都包含这几个括号中的内容。上面有三个括号,分别对应城市、最低温和最高温。

另一个是“.*?”。python的正则匹配默认是贪婪的,即默认尽可能多地匹配字符串。如果在末尾加上问号,则表示非贪婪模式,即尽可能少地匹配字符串。在这里,由于有多个城市的信息需要匹配,所以需要使用非贪婪模式,否则匹配结果只剩下一个,且是不正确的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2284180.html

(0)
上一篇 2025年2月27日 20:37:04
下一篇 2025年2月27日 20:37:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用python发送邮件和接收邮件

    发邮件是大家工作中最常用到的。今天来看一下怎么用python来发送和接收邮件。 python实现发送和接收邮件功能主要用到poplib和smtplib模块。 poplib用于接收邮件,而smtplib负责发送邮件。 代码如下: #! /us…

    编程技术 2025年2月27日
    000
  • python使用matplotlib绘图详解

    matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令api,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入gui应用程序中。它的文档相当完备,并且gallery页面中有上百幅缩略图,打开…

    2025年2月27日 编程技术
    200
  • python中json对象转换出错解决方法

    今天在使用python中的json转换碰到一个问题: 接收一个post的json字符串: s={“username”:”admin”,”password”:&#8221…

    编程技术 2025年2月27日
    200
  • python批量抓取美女图片

    学了python以后,知道python的抓取功能其实是非常强大的,当然不能浪费,呵呵。我平时很喜欢美女图,呵呵,程序员很苦闷的,看看美女,养养眼,增加点乐趣。好,那就用python写一个美女图自动抓取程序吧~~ 其中用到urllib2模块和…

    编程技术 2025年2月27日
    200
  • python实现douban.fm简易客户端

    一个月前心血来潮用python实现了一个简单的douban.fm客户端,计划是陆续将其完善成为ubuntu下可替代web版本的douban.fm客户端。但后来因为事多,被一直搁着,没有再继续完善。就在昨天,一位园友在评论中提到了登录的实现,…

    2025年2月27日
    200
  • Python中map filter reduce的递归实现

    map2=lambda f,seq: [] if seq==[] else [f(seq[0])] + map2(f, seq[1:])  filter2=lambda f, seq: [] if seq==[] else ( [seq[0…

    编程技术 2025年2月27日
    200
  • 如何让python变得更快?

    python和其他脚本语言通常会被摒弃,因为它们相对于一些类似于c语言的编译型的语言来说效率很低。比如下面的斐波纳契数的例子: C语言中: int fib(int n){   if (n Python中:def fib(n):  if n …

    编程技术 2025年2月27日
    200
  • 用70行代码实现日志分析程序​

    python又一力作,感受python的强大。用70行代码实现日志分析程序 功能介绍:可直接对文本日至进行分组和排序功能,完了输出结果粘贴到excel里就可以直接生成图表,对于排查一些生产环境问题有很大的作用。 代码: #encoding=…

    编程技术 2025年2月27日
    200
  • 教你用100多行写一个数据库

    本文介绍的是以为中国的it资深人士写的一个简单的数据库,没有我们使用的数据库那么强大,但是值得大家借鉴。可以用在特定环境中,更加灵活方便。 数据库的名字叫WawaDB,是用python实现的。由此可见python是灰常强大啊! 简介 记录日…

    编程技术 2025年2月27日
    200
  • linux及windows下使用Python获取IP地址

    使用python可以用很简单的方法得到本机ip地址,不过在windows和linux下的方法稍有不一样的,下面就来详细介绍下: Windows下获得IP地址的方法 方法一 使用socket模块 使用拨号上网的话,一般都有一个本地ip和一个外…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论