天天看点

初学爬虫:利用Python爬取数据

  • 新手初学,话不多说,直接放代码,需要的自取。
  • 没有加每日自动运行的东西,回头研究一下。默认保存在代码目录的water_level.csv文件里,只保留了几个有用的信息。
  • 回头研究一下http://www.cjh.com.cn/sqindex.html)数据,。看了一下网页,数据是存在js里的,还没有研究爬js的数据。
# -*- encoding: utf-8 -*-
'''
@File    :   cq_water_level.py
@Time    :   2022/12/03 10:31:18
@Author  :   erqie
@Version :   1.0
@Contact :   [email protected]
@Function:   爬取每日数据
'''
__author__ = 'erqie'


import requests
import json

url = 'http://cqsw.slj.cq.gov.cn/hydrologyapi/stRiverR/dayWaterNotice'
# 根据自己的浏览器自己修改,防止无法访问的情况。没有测试不加header会不会拒绝访问。
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.139 Safari/537.36'
}
resp = requests.post(url, headers=headers)
# print(resp.text)
data_list = json.loads(resp.text)["data"]
# print(data_list)
with open('water_level.csv', 'a', encoding='utf-8') as f:
    for s in data_list:
        # print(f'{s.get("stcd")}----------{s.get("stnm")}--------{s.get("tm")}--------{s.get("z")}')
        f.write(
            f'{"".join(s.get("stcd").split())},{"".join(s.get("addvnm").split())},{"".join(s.get("stnm").split())},{"".join(s.get("tm").split())},{s.get("z")}\n'
        )