Python简略两步完成气候爬虫收集器

说道爬虫咱们或许感觉非常奥秘,其实它没有咱们幻想的那么奇特(当然,google和baidu的爬虫是一场杂乱和强壮的,它的强壮不是爬虫自身强壮,而是后台的数据处理和数据发掘算法非常强壮),今日咱们就来揭开它奥秘的面纱。呵呵,简略两步就可以完成一个网页气候爬虫程序。。。

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

1、取得网页文本信息。

python在获取html方面非常便利,有了urllib库的协助,只需求几行代码就可以完成咱们需求的功用。

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

这儿回来的便是网页的源代码,也便是html代码。

那咱们怎么从中得到咱们想要的信息呢?那就需求用到在网页剖析里边最最常用的东西 - 正则表达式 了。

2、依据正则表达式等取得需求的内容。

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

python正则表达式的运用也很简练:

#引进正则表达式库
import re
def getWeather(html): 
reg = '<a title=.*?>(.*?)</a>.*?<span>(.*?)</span>.*?<b>(.*?)</b>'
weatherList = re.compile(reg).findall(html) 
return weatherList

阐明:

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

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

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

另一个是“.*?”。python的正则匹配默许是贪婪的,即默许尽可能多地匹配字符串。如果在结尾加上问号,则表明非贪婪形式,即尽可能少地匹配字符串。在这儿,因为有多个城市的信息需求匹配,所以需求运用非贪婪形式,不然匹配成果只剩下一个,且是不正确的。


上一篇:python用两种办法完成url短衔接
下一篇:运用python发送邮件和接纳邮件

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854