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

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

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

1.思路分析:

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

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

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

import requests
import lxml.html
import json

def 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 data

def 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",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值