Python学习笔记——BeautifulSoup4数据提取+爬取天气预报小案例

1.百度搜索 “beautfulSoup4文档”

Python学习笔记——BeautifulSoup4数据提取+爬取天气预报小案例_第1张图片

2.按照开发文档安装库

3.常用的方法整理笔记

Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种Tag , NavigableString , BeautifulSoup , Comment .

Python学习笔记——BeautifulSoup4数据提取+爬取天气预报小案例_第2张图片

4.爬取 中国天气网 某城区天气预报

html源码:

    标签内其中一个
  • 标签

  • 6日(今天)

    多云

    10℃

    <3级

  • python爬取源码 :

    import requests
    from bs4 import BeautifulSoup
    
    #========获取数据=============
    r = requests.get("http://www.weather.com.cn/weather/101090101.shtml")
    r.encoding = "utf-8"
    html_doc = r.text
    
    #========分析数据=============
    #1.获取目标ul
    soup = BeautifulSoup(html_doc, 'html.parser')
    weather_ul_soup = soup.find_all('ul', class_='t clearfix')[0]
    
    #遍历每一个
  • 节点 for i in range(len(weather_ul_soup.find_all('li'))): li_label = weather_ul_soup.find_all('li')[i] #获取第i个li标签 print(li_label.find_all('h1')[0].string) #获取日期 print(li_label.find_all('p')[0].string) #获取天气状况 if li_label.find_all('span')[0].string == None: #温度有一个或两个 print(li_label.find_all('i')[0].string) else: print(li_label.find_all('i')[0].string,'~',li_label.find_all('span')[0].string) print('风级:',li_label.find_all('i')[1].string) #风级 print("==============") #分割符
  • 结果:

    7日(今天)
    小雨
    8℃
    风级: <3级
    ==============
    8日(明天)
    多云转小雨
    4℃ ~ 15℃
    风级: 3-4级转<3级
    ==============
    9日(后天)
    小雨
    3℃ ~ 12℃
    风级: 3-4级转<3级
    ==============
    10日(周五)
    阴转小雨
    4℃ ~ 12℃
    风级: 3-4级转<3级
    ==============
    11日(周六)
    多云
    7℃ ~ 15℃
    风级: 3-4级转<3级
    ==============
    12日(周日)
    多云
    6℃ ~ 18℃
    风级: 3-4级转<3级
    ==============
    13日(周一)
    晴
    8℃ ~ 21℃
    风级: 3-4级转<3级
    ==============
    
    Process finished with exit code 0
    

     

你可能感兴趣的:(#,爬虫)