基于python的批量网页爬虫
在各个网站,较久远的天气信息基本需要付费购买,因此为了花费更少的代价,得到完整的信息,我们经常会对一个网站进行爬虫,这篇文章是我第一次爬虫的心得,因为是第一次进行爬虫,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的批量网页爬虫相关推荐
- 基于python的影评数据分析_基于Python聚焦型网络爬虫的影评获取技术
龙源期刊网 http://www.qikan.com.cn 基于 Python 聚焦型网络爬虫的影评获取技 术 作者:郭向向 郑嘉慧 苗学芹 来源:<时代金融> 2019 年第 11 期 ...
- 基于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 ...
- python数据采集系统_基于python的聚焦网络爬虫数据采集系统设计与实现
基于 python 的聚焦网络爬虫数据采集系统设计与实现 杨国志 ; 江业峰 [期刊名称] < <科学技术创新> > [年 ( 卷 ), 期] 2018(000)027 [摘要 ...
- 基于Python实现的网络爬虫项目——多线程下载小说并保存为txt文件(包含完整代码及注释)
基于Python实现的网络爬虫项目--多线程下载小说并保存为txt文件(包含完整代码及注释) 一.确立预期目标 二.完成项目所需工具 三.项目需要解决的问题 问题一 问题二 问题三 问题四 问题五 问 ...
- python批量图像处理_基于python代码批量处理图片resize
出差做PPT,要放一些图片上去,原图太大必须resize,十几张图片懒得一一处理了,最近正好在学python,最好的学习方式就是使用,于是写了一个批量处理图片resize的代码,在写的过程中,熟悉了p ...
- 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh
[计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh
- 基于python可视化的网页搜索引擎设计#毕业设计
开发环境 项目编号:基于python可视化的网页搜索引擎设计#毕业设计 开发语言:Python python框架:django 软件版本:python3.7/python3.8 数据库:mysql 5 ...
- 基于python语言,使用爬虫和深度学习来预测双色球(二、模型训练与测试)
在上一篇博文中(基于python语言,使用爬虫和深度学习来预测双色球(一.数据的准备)),我们完成了数据的准备,通过爬虫的方式将2003年至今的每一期的中奖数据保存到了txt文件中,那么我们现在就开始 ...
- 【基于Python的招聘网站爬虫及可视化的设计与实现】
完整下载:基于Python的招聘网站爬虫及可视化的设计与实现.docx 目录 目录 2 摘要 3 关键词 3 第一章 绪论 3 1.1 研究背景 3 1.2 研究意义 4 1.3 研究目的 6 1.4 ...
最新文章
- (转)失败和拒绝,也是一种肯定
- java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...
- Hive 内置函数权威指南,操作大全
- 【24】淘宝sdk——入门实战之左右悬浮模块
- 大数据数学基础 python描述下载_正版 大数据数学基础(Python语言描述)Python 大数据 数学 高职-计算机-大数据技术...
- offsetX、clientX、screenX、pageX、layerX
- 解决Hbuliderx的代码不能自动补全的问题
- java借书_用java语言实现借书系统
- iOS 在CollectionView上做展开收起动画
- java 加权平均_加权平均值 - 不羁之后的个人空间 - OSCHINA - 中文开源技术交流社区...
- chrome 浏览器升级后接口无法正常访问
- java中explain什么意思_Java架构-面试前必须知道的MySQL命令【explain】
- 字典学习/稀疏表示学习笔记
- Hyperledger Fabric1.4学习笔记(包括官方文档翻译)
- CSS3颜色值RGBA与渐变色
- Solidworks2017安装遇到问题:前一个安装中的Windows重启操作正在等待处理。
- 计算机无法在安全模式下完成安装,最近我的电脑安装不了软件,总提示说Windows在安全模式下运行? 爱问知识人...
- 大数据方面的核心技术
- dnf服务器炸团门票怎么找回,DNF最新BUG,玩家打团买票后材料消失,无法引炸直接退队!...
- 支付宝开发 ——第三方支付