在各个网站,较久远的天气信息基本需要付费购买,因此为了花费更少的代价,得到完整的信息,我们经常会对一个网站进行爬虫,这篇文章是我第一次爬虫的心得,因为是第一次进行爬虫,python程序运行时间较长,若有错误,请大佬指出。

爬取网站 https://en.tutiempo.net/climate/ws-567780.html 上昆明每月的平均天气信息。以昆明1942年7月为例,观测网站https://en.tutiempo.net/cli mate/ 07 - 1942 /ws-5 67780.html,可以发现,绿色代表月份,蓝色代表年份,我们需要爬取的信息是1942年到2019年每月的信息。即https://en.tutiempo.net/climate/01-1942/ws-567780.html到https://en.tutiempo.net/climate/12-2019/ws-567780.html每个网页上图1红框内的信息。

图1

F12观测网页结构如图2,找到该红框所对应的代码(html小白可以把鼠标放在代码上,出现的蓝筐即为该代码所构成的网页模块)。

图2

发现红框对应的网页代码如图3所示:

图3

因此构造python字符匹配代码:

'<td class="tc2">(.*)</td><td class="tc3">(.*)</td><td class="tc4">(.*)</td><td class="tc5">(.*)</td><td class="tc6">(.*)</td><td class="tc7">(.*)</td><td class="tc8">(.*)</td><td class="tc9">(.*)</td><td class="tc10">(.*)</td><td> </td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td>'

构造出的整体python代码如下:

import requests
import re
from xlwt import *book = Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1') #创建一个sheet
for j in range(78):# 一共78年for k in range(12):# 一共12个月print(j,k)try:# 匹配字符串word2 = '<td class="tc2">(.*)</td><td class="tc3">(.*)</td><td class="tc4">(.*)</td><td class="tc5">(.*)</td><td class="tc6">(.*)</td><td class="tc7">(.*)</td><td class="tc8">(.*)</td><td class="tc9">(.*)</td><td class="tc10">(.*)</td><td> </td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td>'# 在1到9月前面加个0if(k<9):url = "https://en.tutiempo.net/climate/0{}-{}/ws-567780.html".format(k + 1, j + 1942)else:url = "https://en.tutiempo.net/climate/{}-{}/ws-567780.html".format(k + 1, j + 1942)f = requests.get(url)  # Get该网页从而获取该html内容str = f.content.decode()# 返回查找到的数据wordlist2 = re.findall(re.compile(word2), str)for i in range(13):# 将数据存入book中print(wordlist2[0][i])a = j*12+ksheet.write(a, i, label=wordlist2[0][i])except:print()
# 将book保存到表格里
book.save("weather.xls")

运行后得到的excel表格见图5,经过ctrl+F进行字符替换和excel表的数据-分列-完成操作后,得到表格见图6,进行一些修饰,见图7表格。

图5

图6

图7

基于python的批量网页爬虫相关推荐

  1. 基于python的影评数据分析_基于Python聚焦型网络爬虫的影评获取技术

    龙源期刊网 http://www.qikan.com.cn 基于 Python 聚焦型网络爬虫的影评获取技 术 作者:郭向向 郑嘉慧 苗学芹 来源:<时代金融> 2019 年第 11 期 ...

  2. 基于Python的招聘网站爬虫及可视化的设计与实现

    摘 要 I Abstract II 引 言 1 第1章 课题概述 2 1.1 课题内容 2 1.2 课题背景 2 1.3 课题意义 3 1.4 运行环境 3 1.5 相关技术 3 1.5.1 Pyth ...

  3. python数据采集系统_基于python的聚焦网络爬虫数据采集系统设计与实现

    基于 python 的聚焦网络爬虫数据采集系统设计与实现 杨国志 ; 江业峰 [期刊名称] < <科学技术创新> > [年 ( 卷 ), 期] 2018(000)027 [摘要 ...

  4. 基于Python实现的网络爬虫项目——多线程下载小说并保存为txt文件(包含完整代码及注释)

    基于Python实现的网络爬虫项目--多线程下载小说并保存为txt文件(包含完整代码及注释) 一.确立预期目标 二.完成项目所需工具 三.项目需要解决的问题 问题一 问题二 问题三 问题四 问题五 问 ...

  5. python批量图像处理_基于python代码批量处理图片resize

    出差做PPT,要放一些图片上去,原图太大必须resize,十几张图片懒得一一处理了,最近正好在学python,最好的学习方式就是使用,于是写了一个批量处理图片resize的代码,在写的过程中,熟悉了p ...

  6. 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh

    [计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh

  7. 基于python可视化的网页搜索引擎设计#毕业设计

    开发环境 项目编号:基于python可视化的网页搜索引擎设计#毕业设计 开发语言:Python python框架:django 软件版本:python3.7/python3.8 数据库:mysql 5 ...

  8. 基于python语言,使用爬虫和深度学习来预测双色球(二、模型训练与测试)

    在上一篇博文中(基于python语言,使用爬虫和深度学习来预测双色球(一.数据的准备)),我们完成了数据的准备,通过爬虫的方式将2003年至今的每一期的中奖数据保存到了txt文件中,那么我们现在就开始 ...

  9. 【基于Python的招聘网站爬虫及可视化的设计与实现】

    完整下载:基于Python的招聘网站爬虫及可视化的设计与实现.docx 目录 目录 2 摘要 3 关键词 3 第一章 绪论 3 1.1 研究背景 3 1.2 研究意义 4 1.3 研究目的 6 1.4 ...

最新文章

  1. (转)失败和拒绝,也是一种肯定
  2. java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...
  3. Hive 内置函数权威指南,操作大全
  4. 【24】淘宝sdk——入门实战之左右悬浮模块
  5. 大数据数学基础 python描述下载_正版 大数据数学基础(Python语言描述)Python 大数据 数学 高职-计算机-大数据技术...
  6. offsetX、clientX、screenX、pageX、layerX
  7. 解决Hbuliderx的代码不能自动补全的问题
  8. java借书_用java语言实现借书系统
  9. iOS 在CollectionView上做展开收起动画
  10. java 加权平均_加权平均值 - 不羁之后的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. chrome 浏览器升级后接口无法正常访问
  12. java中explain什么意思_Java架构-面试前必须知道的MySQL命令【explain】
  13. 字典学习/稀疏表示学习笔记
  14. Hyperledger Fabric1.4学习笔记(包括官方文档翻译)
  15. CSS3颜色值RGBA与渐变色
  16. Solidworks2017安装遇到问题:前一个安装中的Windows重启操作正在等待处理。
  17. 计算机无法在安全模式下完成安装,最近我的电脑安装不了软件,总提示说Windows在安全模式下运行? 爱问知识人...
  18. 大数据方面的核心技术
  19. dnf服务器炸团门票怎么找回,DNF最新BUG,玩家打团买票后材料消失,无法引炸直接退队!...
  20. 支付宝开发 ——第三方支付

热门文章

  1. 建设数据中心机房主要看这几点,否则被定为劣质机房!!!
  2. PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址
  3. RabbitMQ的简单应用
  4. linux查看系统所有变量,Linux系统各指标命令
  5. diy直立双足机器人_动手制作机器人,双足移动机器人DIY
  6. 图像分割:阈值获取方法总结
  7. python安装jupyterlab_jupyter及jupyterlab安装使用
  8. ISO26262 功能安全各个阶段测试要求
  9. 信息传递(tarjan算法)
  10. 基于Vue源码中e2e测试实践