数据采集第二次作业

1. 作业①:

要求:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在
数据库。
输出信息:

序号 地区 日期 天气信息 温度
1 北京 7日(今天) 晴间多云,北部山区有阵雨或雷阵雨转晴转多云 31℃/17℃
2 北京 8日(明天) 多云转晴,北部地区有分散阵雨或雷阵雨转晴 34℃/20℃
3 北京 9日(后台) 晴转多云 36℃/22℃
4 北京 10日(周六) 阴转阵雨 30℃/19℃
5 北京 11日(周日) 阵雨 27℃/18℃
6......

1)代码部分:

    • 数据库相关代码如下:
#数据库
class WeatherDB:

    def openDB(self):
        self.con=sqlite3.connect(r"E:\数据采集作业\作业2#1.db")
        self.cursor=self.con.cursor()
        try:
            self.cursor.execute("create table weathers (wCity varchar(16),wDate varchar(16),wWeather varchar(64),wTemp varchar(32),constraint pk_weather primary key (wCity,wDate))")
        except:
            self.cursor.execute("delete from weathers")

    def closeDB(self):
        self.con.commit()
        self.con.close()

    def insert(self, city, date, weather, temp):
        try:
            self.cursor.execute("insert into weathers (wCity,wDate,wWeather,wTemp) values (?,?,?,?)",
                                (city, date, weather, temp))
        except Exception as err:
            print(err)

    def show(self):
        self.cursor.execute("select * from weathers")
        rows = self.cursor.fetchall()
        i=1
        print("{:4}\t{:10}\t{:14}\t{:24}\t{:16}".format("序号", "地区", "日期", "天气信息", "温度"))
        for row in rows:
            print("{:4}\t{:10}\t{:10}\t{:24}\t{:16}".format(i,row[0], row[1], row[2], row[3]))
            i+=1

2)心得体会

该作业是复现书上的代码,让我对数据库有了初步的了解与认识,方便我接下来的实验。

2. 作业②

要求:用requests和自选提取信息方法定向爬取股票相关信息,并存储在数据库中。
输出信息:

序号 股票代码 股票名称 最新报价 涨跌幅 涨跌额 成交量 成交额 振幅 最高 最低 今开 昨收
1 688093 N世华 28.47 62.22% 10.92 26.13万 7.6亿 22.34 32.0 28.08 30.2 17.55
2......

* 1)代码部分

进入F12调试模式进行抓包,查找股票列表加载使用的url。经过查找,找到jQuery,如图所示

其url为,其中str(page) 为页数 例如:pn=1 or pn=2 ...
url = "http://12.push2.eastmoney.com/api/qt/clist/get?cb=" \ "jQuery1124022551745103192156_1634088681455&pn=" \ + str(page) + "&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1634088681456"
经过分析发现

# 通过观察我们可以发现,股票代码在f12,名称在f14,最新价f2,涨跌幅f3, 涨跌额f4,
# 成交量f5,成交额f6, 振幅f7, 最高f15, 最低f16,今开f17,昨收f18

* 2)心得体会

学会了使用抓包工具获取网页数据,加深了对谷歌F12模式的理解与掌握。这次作业是js爬取动态网页,我通过观察URL发现只要控制每页的标识变量pn可以实现翻页

3. 作业③:

要求:爬取中国大学2021主榜(https://www.shanghairanking.cn/rankings/bcur/2021)所
有院校信息,并存储在数据库中,同时将浏览器F12调试分析的过程录制Gif加入至博客中。
输出信息:

排名 学校 总分
1 清华大学 969.2

1)代码部分

2)心得体会

该作业不再需要翻页处理,利用了re,相对简单

posted @ 2021-10-14 13:42  王老大要去吃香喝辣  阅读(44)  评论(0编辑  收藏  举报