一、爬取湛江天气预报信息

url:http://www.weather.com.cn/weather/10128100101A.shtml

1.思路分析:

①先爬取网页所有数据,div/ul/li,获得7天天气预报的所有信息;

②li下的所有数据进行提取数据;

③保存文件。 --文件操作、json模块。

import requests
import lxml.html
import jsondef parse_url(url,header):""""解析url地址,获得网页的所有数据内容"""response = requests.get(url,headers=header)# return response.text  会出现乱码#改为content二进制数据,再转为字符串decode即可return response.content.decode("utf-8")  def get_weather_datas(html_content):""""从所有html数据信息中获取ul>li标签中的所有天气信息"""metree = lxml.html.etree# 1 获得解析对象(构造一个 XPath 解析对象并对 HTML 文本进行自动修正)parser = metree.HTML(html_content,metree.HTMLParser())# 2 使用Xpath语法获得li所有标签li_list = parser.xpath("//div[@class='c7d']/ul[@class='t clearfix']/li")# print(li_list)# print(len(li_list))  7# 3 获得li标签下的所有信息# 先创建一个空列表data = []#  循环遍历for ele in li_list:# 创建一个空字典item = {}# 继续使用XPath语法item["date"] = ele.xpath("./h1/text()")[0]item["天气"] = ele.xpath("./p[@class='wea']/text()")[0]# item["wea"] = ele.xpath("./p[@class='wea']/@title")[0]  通过title属性获取item["最低温度"] = ele.xpath("./p[@class='tem']/i/text()")[0]item["最高温度"] = ele.xpath("./p[@class='tem']/span/text()")[0]# print(item["最高温度"])data.append(item)# print(data)return datadef save_weather_file(datas):""""保存文件"""# 列表转json字符串,并保存到文件中json_strs = json.dumps(datas,ensure_ascii=False,indent=2)# print(json_strs)# print(type(json_strs))with open("./file/weather.json","w",encoding="utf-8") as files:files.write(json_strs)print("数据保存成功!")def main():# ①div/ul/li,获得7天天气预报的所有信息;  --lxml、requests、XPath   --list类型# 网址、请求头# print("HelloWorld...")http_url = "http://www.weather.com.cn/weather/10128100101A.shtml"headers = \{"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"}# 解析urlhtml_data = parse_url(http_url,headers)# print(html_data)# ②li下的所有数据进行提取数据;  --对上述的7条数据进行处理,提取数据  XPath   --列表weather_datas = get_weather_datas(html_data)# print(weather_datas)# ③保存文件。  --文件操作、json模块save_weather_file(weather_datas)""""python程序入口,通常写在程序末尾处"""
if __name__ == '__main__':main()

2.爬取的数据:

  


二 、爬取美女网站信息

url:http://www.xiaohuar.com/list-1-1.html

1.思路分析

①获得所有美女图片的div列表;

②在当前美女的div中获得所有信息;

③保存数据。

import requests
import lxml.html
import jsondef parse_url(url,header):""""解析url地址,获取所有网页数据信息"""response = requests.get(url,headers=header)return response.content.decode("gbk")def get_xiaohua_datas(html_content):""""获取数据内容"""metree = lxml.html.etree# 解析对象parser = metree.HTML(html_content,metree.HTMLParser())# 解析获得②在当前美女的div中获得所有信息div_list = parser.xpath("//div[@class='item_list infinite_scroll']/div")# 创建空列表data = []# print(div_list)# print(len(div_list))  25for ele in div_list:item = {}  #创建空字典# 继续使用xpath 语法item["title"] = ele.xpath("./div[@class='item_t']/div[@class='img']/a/img/@alt")[0]item["name"] = ele.xpath("./div[@class='item_t']/div[@class='img']/span/text()")[0]item["school"] = ele.xpath("./div[@class='item_t']/div[@class='img']/div[@class='btns']/a/text()")[0]item["like_count"] = ele.xpath("./div[@class='item_b clearfix']/div[@class='items_likes fl']/em/text()")[0]# print(item["like_count"])data.append(item)# print(data)return datadef save_xiaohua_file(datas):""""保存文件"""json_strs = json.dumps(datas,ensure_ascii=False,indent=2)with open("./file/xiaohua.json","w",encoding="utf-8") as files:files.write(json_strs)print("数据保存成功!")def main():xiaohua_url = "http://www.xiaohuar.com/list-1-1.html"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"}html_data = parse_url(xiaohua_url,headers)# print(html_data)# ①获得所有美女图片的div列表xiaohua_datas = get_xiaohua_datas(html_data)# ③保存数据save_xiaohua_file(xiaohua_datas)if __name__ == '__main__':main()

2.爬取的数据

[{"title": "大连国际舞蹈学校校花王钰萌","name": "王钰萌","school": "大连国际舞蹈学校","like_count": "159"},{"title": "南昌大学校花曾阳","name": "曾阳","school": "南昌大学","like_count": "220"},{"title": "中国民航大学校花张金玉","name": "张金玉","school": "中国民航大学","like_count": "109"},{"title": "天津财经大学校花卓娅祺","name": "卓娅祺","school": "天津财经大学","like_count": "361"},{"title": "新疆农业大学校花麦合丽娅","name": "麦合丽娅","school": "新疆农业大学","like_count": "53"},{"title": "成都职业技术学院校花杨萍","name": "杨萍","school": "成都职业技术学院","like_count": "108"},{"title": "东北师范大学校花尹思凝","name": "尹思凝","school": "东北师范大学","like_count": "109"},{"title": "北京理工大学珠海学院校花韦若愚","name": "韦若愚","school": "北京理工大学珠海学院","like_count": "122"},{"title": "厦门理工学院校花袁慧","name": "袁慧","school": "厦门理工学院","like_count": "78"},{"title": "湖北艺术学院校花王媛茜","name": "王媛茜","school": "湖北艺术学院","like_count": "96"},{"title": "文光中心校花陈里佳","name": "陈里佳","school": "文光中心","like_count": "48"},{"title": "大连外国语大学校花高梦馨","name": "高梦馨","school": "大连外国语大学","like_count": "115"},{"title": "舟山技师学院校花宋世杰","name": "宋世杰","school": "舟山技师学院","like_count": "99"},{"title": "上海财经大学校花徐逸岑","name": "徐逸岑","school": "上海财经大学","like_count": "123"},{"title": "武汉大学校花丁婷婷","name": "丁婷婷","school": "武汉大学","like_count": "121"},{"title": "行健学院校花徐艳琛","name": "徐艳琛","school": "行健学院","like_count": "149"},{"title": "上海交通大学校花唐雨乔","name": "唐雨乔","school": "上海交通大学","like_count": "105"},{"title": "温州大学校花汤以斯贴","name": "汤以斯贴","school": "温州大学","like_count": "289"},{"title": "华东大学校花赵梦洁","name": "赵梦洁","school": "华东大学","like_count": "604"},{"title": "鄞州职业高级中学校花翁川美","name": "翁川美","school": "鄞州职业高级中学","like_count": "109"},{"title": "中央戏剧学院校花刘垚昕","name": "刘垚昕","school": "中央戏剧学院","like_count": "585"},{"title": "星源初中校花廖炯炅","name": "廖炯炅","school": "星源初中","like_count": "99"},{"title": "广州华夏职业学院校花邓杏琳","name": "邓杏琳","school": "广州华夏职业学院","like_count": "97"},{"title": "芷江师范校花滕之雅","name": "滕之雅","school": "芷江师范","like_count": "208"},{"title": "铁岭师范校花施玉","name": "施玉","school": "铁岭师范","like_count": "186"}
]

三、总结

爬取数据的基本步骤(以案例二为例)

1.写入对应的url

2.请求头,解析url地址,获取所有网页数据信息:

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"} html_data = parse_url(xiaohua_url,headers) 

3.获取数据后可以获得所有美女图片的div列表

xiaohua_datas = get_xiaohua_datas(html_data) 

4.根据需要的内容来保存数据

 save_xiaohua_file(xiaohua_datas)

python:爬取天气预报+美女网站数据信息相关推荐

  1. python 爬取猫眼电影网站数据

    完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/maoyan python 爬取 movie.douban.com 网站 ...

  2. 手把手教你用python爬取人人贷网站借款人信息

    P2P是近年来很热的一个行业,由于这个行业在国内兴起才不久,国内的很多学者对这个行业都兴趣盎然,在大学研究互联网金融的学者更是有一大群.小编是学金融出身,深知数据在做学术研究的重要性,之前有不少学互联 ...

  3. python爬取人人车网站数据

    使用python对人人车网站进行爬取 # 导入库requests.re.xlwt import requests import re import xlwt header={"User-Ag ...

  4. python爬取前程无忧招聘网站数据搭建Hadoop、Flume、Kafka、Spark用Hive做数据分析Sqoop存储到Mysql并实现可视化

    文章目录 一.项目总体要求 二.环境搭建 1.安装包准备 2.安装jdk (1)查询是否安装java (2)卸载jdk (3)安装jdk (4)配置jdk环境变量 3.配置ssh免密登录 (1)进入到 ...

  5. Python爬取各种类型网站数据(视频,图片居多)

    博主码云地址:https://gitee.com/whsAf007/Python.git 直接git clone 取

  6. python爬取抖音用户数据_使用python爬取抖音视频列表信息

    如果看到特别感兴趣的抖音vlogger的视频,想全部dump下来,如何操作呢?下面介绍介绍如何使用python导出特定用户所有视频信息 抓包分析 Chrome Deveploer Tools Chro ...

  7. 使用requests爬取实习僧网站数据

    任务要求: 爬取实习僧网站的招聘公司信息和职位信息,并存储到数据库中,对应的数据库表和需要爬取的字段见下面表一和表二(注意:爬取存在的字段) 代码以上传带github上:使用requests爬取实习僧 ...

  8. 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)

    爬虫入门:python爬取豆瓣影评及影片信息:影片评分.评论时间.用户ID.评论内容 思路分析 元素定位 完整代码 豆瓣网作为比较官方的电影评价网站,有很多对新上映影片的评价,不多说,直接进入正题. ...

  9. Python爬取2022春节档电影信息

    Python爬取2022春节档电影信息 前提条件 相关介绍 实验环境 具体步骤 确定目标网站 分析网站 按F12打开浏览器操作台 按Ctrl+Shift+C快捷键,用鼠标找到目标元素 按Ctrl+F快 ...

最新文章

  1. matlab pup,matlab利用bar函数画不同颜色直方图
  2. 港大徐爱民组研究助理招聘-内分泌代谢方向
  3. arduino并口屏_Arduino 驱动串口屏(入门级)
  4. xshell 打开文件跳转到最后_如何在Xshell中打开Xftp
  5. OpenSolaris安装JDK以及配置java开发环境
  6. 1134 Vertex Cover
  7. MySQL Front远程连接数据库
  8. Hercules配置文件HERCULES.CNF范本
  9. Delphi7 提示未注册解决解决办法,201-09-05日,亲测有效
  10. 从有到优:百度前端接入技术的升级之路
  11. Symbian 之浏览器
  12. Activiti工作流表结构详解
  13. ThinkBook 14P 15P 笔记本结束休眠后触控板手势失效问题解决 亲测可行
  14. 使用TIM捕获测量PWM频率和占空比
  15. 侍魂哪个服务器人最多,为什么那么多人喜欢侍魂2,而我却觉得侍魂5比2好玩多了?...
  16. 七牛云 vue 图片上传简单解说,js 上传文件图片
  17. 认识oracle的update更新
  18. CANoe.DiVa 操作指南 - 时间参数配置
  19. java soap附件_Axis2用法:soap消息携带附件
  20. HTML各种命令的代码

热门文章

  1. Flutter 参数传递
  2. 微信小程序+SpringBoot实现文件上传与下载
  3. p30p鸿蒙11,p30p30pro区别
  4. 世界国家、省/州、城市的数据库
  5. 龙之气息服务器维修中,龙之气息为什么进不去_龙之气息魔心怎么玩
  6. linux图形界面历史,桌面应用|用 ROX 桌面重温 Linux 历史
  7. Vue2.x ui 创建项目
  8. matlab激光雷达三角测距,三角测距与TOF激光雷达,你了解多少?
  9. matlab intergral,matlab学习:人脸识别之HOG(Histograms of Oriented Gradients)
  10. OpenGL中的Scissor