“入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习。
如果你想要入门Python爬虫,你需要做很多准备。首先是熟悉python编程;其次是了解HTML;
还要了解网络爬虫的基本原理;最后是学习使用python爬虫库。
如果你不懂python,那么需要先学习python这门非常easy的语言。编程语言基础语法无非是数据类型、数据结构、运算符、逻辑结构、函数、文件IO、错误处理这些,学起来会显枯燥但并不难。
刚开始入门爬虫,你甚至不需要去学习python的类、多线程、模块之类的略难内容。找一个面向初学者的教材或者网络教程,花个十几天功夫,就能对python基础有个三四分的认识了。
网络爬虫的含义:
网络爬虫,其实也可以叫做网络数据采集更容易理解。就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。
这会涉及到数据库、网络服务器、HTTP协议、HTML、数据科学、网络安全、图像处理等非常多的内容。但对于初学者而言,并不需要掌握这么多。
import requestsfrom bs4 import BeautifulSoup
import re
import json
# 1.发送请求,获取疫情首页(数据来源于丁香园)
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()
# 2.从疫情首页提取最近一日数据
soup = BeautifulSoup(home_page, 'lxml')
script = soup.find(id='getAreaStat')
text = script.string
# 3.提取数据获取json格式数据
json_str = re.findall(r'\[.+\]', text)[0]
# 4.把json格式转换为python类型
last_day_corona_virus = json.loads(json_str)
# 5.以json格式保存最近一日数据
with open('data/last_day_coronavirus.json', 'w') as fp:
json.dump(last_day_corona_virus, fp, ensure_ascii=False)