文章目录
- 迟迟未开始的原因
- 打破思维里的围墙
- 抛砖引玉
- 爬虫
- 结束词
迟迟未开始的原因
其实我也是很早就知道有python,当时听说这个用于做测试不错,也就一直没有提起兴趣,后来人工智能火了之后,再次接触python,安装好python环境,下载好编辑软件PyCharm,然后写下了第一行输出“hello world”。。。后来枯燥的学习语法过程中被其他事情打断了,也就把这件事给落下了。
我觉得很多人学习东西都可能进入这种怪圈,不管是九年义务教育从基础学起,还是一些前辈苦口婆心的告诉你说基础很重要,就行盖房子的地基,一定要牢固,所以也有很多人想我一样一头就埋进了语法的基础学习中,枯燥无味,极度挑战耐心。
打破思维里的围墙
在互联网刚兴起的时候,就流传一句话,只要学点皮毛,就能在IT圈找到工作,后来再慢慢学。
其实这句话是有点道理,目标驱动了学习的动力,学到一些皮毛后,不断深入学习,慢慢成长,看似有点拔苗助长,基础不牢固,那么想想,如果这个学点皮毛的同学,到了公司后,接收的需求里包含了某一个技术点自己没有学过,是否就开始请教其他同学或者是自己到csdn等网站搜索知识,然后补充回来,或者当这位同学的代码没有考虑到高并发场景,面对领导的点名,是否心里默默记住并回家恶补一番。
打破思维里的围墙,直接上手最有用的技术,先模仿,后自创,优先把握关键皮毛,然后收集其他皮毛,最后发现没有皮毛可以收集了,就已经算是行业里的准专业人士了。
抛砖引玉
我来抛个砖,python比较有趣的应该是爬虫、数据分析和自动化。下面抛爬虫砖
爬虫
爬虫分页面爬虫和接口爬虫,接口爬虫容易遇到反爬虫问题,页面爬虫模拟浏览器行为,比较不容易反爬虫。不管是页面爬虫还是接口爬虫,都需要请求,所以第一个接触的是requests。
页面爬虫需要分析得到的html文件,BeautifulSoup就是处理这个的,名字特别好,翻译过来就是美味汤。这样最简单的爬虫就完成了。
import requests
from bs4 import BeautifulSoup
import json if __name__ == "__main__":self.base_url = "http://xzqh.mca.gov.cn"# 看着很多,其实抄来的,不一定了,反正ctrl+vself.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Accept-Encoding': 'gzip, deflate, br','Connection': 'keep-alive','Upgrade-Insecure-Requests': '1','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'none','Sec-Fetch-User': '?1','Cache-Control': 'max-age=0',}# 1. 获取并解析页面中的省级数据response = requests.Session().get(f"{self.base_url}/map",headers=self.headers,timeout=10,verify=True)response.encoding = 'gbk' # 设置正确的编码# form表单格式为:<form name="fsform"><table class="select_table"><tr><td><input type="hidden" id="pyArr" value="具体内容"></td></tr></table></form>soup = BeautifulSoup(response.text, 'html.parser')form = soup.find('form', {'name': 'fsform'})if form:input_data = form.find('input', {'id': 'pyArr'})if input_data:json_data = input_data.get('value')else:print("未找到input标签")else:print("未找到form表单")if json_data:info_array = json.loads(json_data)print(info_array)else:print("未找到数据")
结束词
看完是不是感觉挺简单的,实践过程如果遇到报错,直接丢网上查查就知道答案,祝各位道友顺利!