使用 lxml 爬取四川省各城市天气预报

简介: 使用 lxml 爬取四川省各城市天气预报

使用 lxml 爬取四川省各城市天气预报

1.实验目的

(1)熟练安装Python扩展库lxml。
(2)熟悉HTML语法和常见标签的用法。
(3)理解网页源代码结构,能够根据实际情况对代码进行适当调整。
(4)理解xpath的工作原理。

2.实验内容

安装Python扩展库lxml,然后编写爬虫项目,从网站
http:// www.weather.com.cn/sichuan/index.shtml
爬取四川各城市的天气预报数据,并把爬取到的天气数据写人本地文本文件四川天气.txt。

3.实验步骤

Python扩展库

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install request lxml

分析城市预报列表

在这里插入图片描述

分析内容页面

在这里插入图片描述

在这里插入图片描述

4.实验结果

在这里插入图片描述

相关源码

from lxml import etree
import requests
import re

f = open("四川天气.txt", "w", encoding="utf8")


def getHTMLText(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = 'utf-8'
        return etree.HTML(r.text)
    except:
        return ""


def getcity():
    s = getHTMLText("http://www.weather.com.cn/sichuan/index.shtml")
    city_name = s.xpath('//*[@id="forecastID"]/dl/dt/a/text()')
    city_url = s.xpath('//*[@id="forecastID"]/dl/dt/a/@href')
    return city_name, city_url


def getinfo(url):
    l = []
    s = getHTMLText(url)
    l.append(s.xpath('//*[@id="7d"]/ul/li/h1/text()'))
    l.append([i for i in s.xpath('//ul[@class="t clearfix"]/li/p/text()')
              if re.fullmatch(r'^[\u4e00-\u9fa5]{0,}$', i)])
    l.append(s.xpath('//*[@id="7d"]/ul/li/p[2]/i/text()'))
    l.append(s.xpath('//*[@id="7d"]/ul/li/p[3]//@title')[:7])
    l.append(s.xpath('//*[@id="7d"]/ul/li/p[3]//i/text()'))

    for j in range(len(l[0])):
        for i in range(len(l)):
            print("{0:>10}".format(l[i][j]), end="")
            f.write(l[i][j])
            # f.write("\t")
        print()
        f.write("\n")


name, urls = getcity()

for i in range(len(name)):
    print(name[i])
    f.write(name[i])
    f.write("\n")
    getinfo(urls[i])
    print("\n\n")
    f.write("\n\n")

f.close()
相关文章
|
3月前
|
数据采集 Python
Pandas爬虫:某浪财经机构持股汇总
Pandas爬虫:某浪财经机构持股汇总
35 1
|
2月前
|
数据采集 Python
Python爬虫-爬取全国各地市的邮编链接
Python爬虫-爬取全国各地市的邮编链接
48 1
|
3月前
|
数据采集 JSON 数据格式
Python:南京地铁每日客流数据的爬虫实现
Python:南京地铁每日客流数据的爬虫实现
77 1
|
4月前
|
机器学习/深度学习 数据采集 算法
重庆二手房数据爬取与分析实现
本文通过逻辑回归模型对重庆二手房市场数据进行爬取、分析和预测,研究了影响房价的关键变量特征,并提供了数据清洗、可视化和建模的详细步骤,旨在为投资者提供准确的市场趋势预测和投资建议。
重庆二手房数据爬取与分析实现
|
7月前
|
数据采集 存储 数据可视化
Python爬取哈尔滨旅游爆火视频数据并进行可视化分析
Python爬取哈尔滨旅游爆火视频数据并进行可视化分析
|
7月前
爬取链家二手房数据
爬取链家二手房数据
79 0
|
Go
Go实现爬取城市七天内的天气
代码仅供参考学习使用
186 0
|
存储 JSON 定位技术
城市POI数据爬取-百度地图版
目前百度地图的最新版为地图检索V2.0服务。详细介绍可以通过开发文档-web服务Api-地点检索V2.0获取。
|
数据采集 编解码 Python
Python爬虫实战(4) | 爬取历年中国电影票房排行榜
看了看后台,发现之前写的几篇有关爬虫实战的文章特别受欢迎,阅读量都是好几千那种 然后回头发现自己好久没写爬虫了,刚好写了个小小的爬虫 demo ,今天分享给大家
天气预报城市代码
天气预报城市代码
136 0