Python 初识urllib模块进行爬虫

Python 初识urllib模块进行爬虫
复习回顾
- 列表的遍历与取值
- 字典的查询
- 导包的方式
本节新知
urllib模块的使用
该模块会模拟我们的浏览器进行访问网页操作并返回网页里面的内容,注意urlopen返回的是一个对象,我们需要通过它的read方法来得到网页的内容,它返回的是一个字符串
1
2
3
4import urllib.request # 此处导包与之前的导包方式有所不同,若直接导入urllib则request包不会被导入
url = "https://www.baidu.com"
req = urllib.request.urlopen(url1)
html_content = req.read().devode("utf8") # 大多网页都为utf-8编码,可尝试不同解码方式进行解码json数据的处理
得到字符串后我们需要对该信息进行解析处理,这种json数据外观上接近我们的python里面的字典,我们可以借助json模块来处理该数据,通过其loads函数可以直接将字符串转化为Python中的字典形式,由于Python中字典根据“key”去查值,效率更高,解析数据将会更方便
1
2
3import json
dict_data = json.loads(json_data) # 通过json.loads()可以将字符串转化为Python字典
# 通过json.dumps(dict_data)可以将Python字典转化为json数据(即字符串)嵌套字典与列表的查询
1
2
3
4
5
6
7
8
9
10
11city_list = [a,b,c,d]
for i in city_list:
print(i)
city_dict = {
"Beijing": {"a": 1, "b": 2, "c": 3},
"Shanghai": {"d": 4, "e": 5, "f": 6},
"Shenzhen": {"a": 2, "c": 4, "e": 6}
}
aaa = city_dict["Beijing"]["a"]
ddd = city_dict["Shanghai"]["d"]
ccc = city_dict["Shenzhen"]["c"]查询字典时可以用中括号进行查值,但是当该键不存在的时候会报错,所以只能在保证该键一定存在的情况下使用,否则需使用get方法进行查值。
课后作业
使用urllib模块 实现检测B站up主更新状况,实时推送up主更新
Tips:通过urllib模块来轮询该up历史动态,并记录返回的动态的列表 中第一条动态对应的时间戳,存储到变量中,当监测到该值发生变化时则进行判断,该值变大则说明up更新了,变小则说明删除了动态
评论
评论插件加载失败
正在加载评论插件