爬蟲 練習(一)爬取一周內天氣到資料庫

2021-08-17 19:20:52 字數 2589 閱讀 6143

爬取一周內天氣到資料庫

需要先在資料庫中新建乙個表:

create table weather (

id int primary key auto_increment,

date1 varchar(100),

desc1 varchar(100),

temp1 varchar(100),

direction1 varchar(100),

level1 varchar(100)

);

用python寫爬蟲主程式:

#! usr/bin/python3

#! -*- coding: utf-8 -*-

from urllib.request import urlopen

from bs4 import beautifulsoup

import pymysql

url = ""

response = urlopen(url)

bs = beautifulsoup(response,"html.parser")

date = bs.select("li.sky > h1")

desc = bs.select("li.sky > p.wea")

temp = bs.select("li.sky > p.tem")

dir = bs.select("li > p.win > em")

level = bs.select("li > p.win > i")

result =

for i in range(date.__len__()):

date1 = date[i].text

desc1 = desc[i].text

temp1 = temp[i].stripped_strings

temp1 = "".join(temp1)

# print(temp1)

dir1 = dir[i]

dir2 = dir1.select("span")

if len(dir2) == 1:

direction = "無持續風向"

else:

# for c in dir2:

direction = dir2[0].get("title")+"-"+dir2[1].get("title")

# print(dir3)

level1 = level[i].text

# for result1 in result:

# print("\t".join(result1))

'''create table weather (

id int primary key auto_increment,

date1 varchar(100),

desc1 varchar(100),

temp1 varchar(100),

direction1 varchar(100),

level1 varchar(100)

);'''

con = pymysql.connect(host="potter2",user="root",password="root",database="test",charset="utf8",port=3306)

#建立游標

cursor = con.cursor();

for result1 in result:

print(result1)

insertsql = "insert into weather (date1,desc1,temp1,direction1,level1) values (%s,%s,%s,%s,%s)"

cursor.execute(insertsql,result1)

con.commit()

cursor.close()

con.close()

結果:

d:\python1711\venv\scripts\python.exe d:/python1711/work1/tianqi_work2.py

['28日(今天)', '浮塵', '9℃', '無持續風向', '<3級']

['29日(明天)', '浮塵轉晴', '19℃/7℃', '南風-南風', '<3級']

['30日(後天)', '晴', '19℃/8℃', '南風-南風', '<3級']

['31日(週六)', '多雲', '23℃/10℃', '南風-東北風', '<3級']

['1日(週日)', '多雲', '25℃/12℃', '南風-北風', '<3級轉3-4級']

['2日(周一)', '晴轉多雲', '19℃/8℃', '北風-東北風', '3-4級轉<3級']

['3日(周二)', '多雲轉陰', '15℃/8℃', '東風-北風', '<3級']

process finished with exit code 0

上傳到資料庫結果:

完成

python爬取近一周天氣並使用xpath解析

xpath即為xml路徑語言 xml path language 它是一種用來確定xml文件中某部分位置的語言。說白了就是找出xml文件中我們想要的內容,這裡我們使用天氣2345 上的資料來舉例,其 主頁面的原始碼如下 這裡我們想要提取從今天開始的一周內的天氣情況,其中包括日期 天氣情況 溫度範圍 ...

Oracle關於一周內資料查詢 DATE

trunc的用法 1.select trunc sysdate from dual 2013 01 06 今天的日期為2013 01 06 2.select trunc sysdate,mm from dual 2013 01 01 返回當月第一天.3.select trunc sysdate,yy...

Python 最簡單爬蟲爬取資料 一 如何請求

python 3.x中使用urllib這個模組進行操作 1.urllib.request 模組是用來開啟和讀取urls的 2.urllib.error 模組包含一些有urllib.request產生的錯誤,可以使用try進行捕捉處理 3.urllib.parse 模組包含了一些解析urls的方法 我...