(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1、明确目标url
2、发起请求 获取响应
3、响应里面取出数据
4、存储数据
一、明确目标url
今天需要的是爬取豆瓣评分电影top250就是这个网站:
首先我们发现页面有十页,先f12打开开发者工具,获取第二页响应,去寻找翻页规律,可以发现第二页:
第三页:
不难发现我们的翻页规律为start累加25
先导包:
# requests_html模块帮我们伪装了ua请求头大多数情况可以不用加
from requests_html import HTMLSession
import os, xlwt, xlrd
from xlutils.copy import copy
然后掏出我们的模板代码,并且将翻页规律给写出来
class Spider:
def __init__(self):
self.url = 'https://movie.douban.com/top250?start={}&filter='
# 实例化
self.session = HTMLSession()
def get_html(self):
# 翻页规律为+=25
page = 0
for i in range(0, 10):
next_url = self.url.format(page)
headers = {}
response = self.session.get(url=next_url)
page += 25
print(response.text)可以看到我们正常获取了响应
开始书写取数据的函数(我们这里用xpath进行书写):
def parse(self, response):
# 取数据函数
for div in response.html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]'):
title = div.xpath('.//a/span[1]/text()')[0] # 标题
label = div.xpath('.//p/text()')[1].replace('\n', '').replace('\xa0', '').replace(' ', '') # 标签
score = div.xpath('.//span[@class="rating_num"]/text()')[0].replace('\n', '').replace('\xa0', '').replace(
' ', '') # 评分
number = div.xpath('.//div[@class="star"]/span/text()')[-1].replace('\n', '').replace('\xa0', '').replace(
' ', '') # 评价人数
remark = div.xpath('.//div[@class="bd"]/p//text()')[-2].replace('\n', '').replace('\xa0', '').replace(' ',
'') # 评语
data = {
'电影': [title, label, score, number, remark]
}
print(data)
发现数据可以正常被提取后我们进行保存:
# # 一个工作簿创建一张表模板代码
def SaveExcel(self, data):
# 创建保存excel表格的文件夹
# os.getcwd() 获取当前文件路径
os_mkdir_path = os.getcwd() + '/数据/'
# 判断这个路径是否存在,不存在就创建
if not os.path.exists(os_mkdir_path):
os.mkdir(os_mkdir_path)
# 判断excel表格是否存在 工作簿文件名称
os_excel_path = os_mkdir_path + '数据.xls'
if not os.path.exists(os_excel_path):
# 不存在,创建工作簿(也就是创建excel表格)
workbook = xlwt.Workbook(encoding='utf-8')
"""工作簿中创建新的sheet表""" # 设置表名
worksheet1 = workbook.add_sheet("电影", cell_overwrite_ok=True)
"""设置sheet表的表头"""
sheet1_headers = ('电影名', '标签', '评分', '评论人数', '评语')
# 将表头写入工作簿
for header_num in range(0, len(sheet1_headers)):
# 设置表格长度
worksheet1.col(header_num).width = 2560 * 3
# 写入 行, 列, 内容
worksheet1.write(0, header_num, sheet1_headers[header_num])
# 循环结束,代表表头写入完成,保存工作簿
workbook.save(os_excel_path)
# 判断工作簿是否存在
if os.path.exists(os_excel_path):
# 打开工作簿
workbook = xlrd.open_workbook(os_excel_path)
# 获取工作薄中所有表的个数
sheets = workbook.sheet_names()
for i in range(len(sheets)):
for name in data.keys():
worksheet = workbook.sheet_by_name(sheets[i])
# 获取工作薄中所有表中的表名与数据名对比
if worksheet.name == name:
# 获取表中已存在的行数
rows_old = worksheet.nrows
# 将xlrd对象拷贝转化为xlwt对象
new_workbook = copy(workbook)
# 获取转化后的工作薄中的第i张表
new_worksheet = new_workbook.get_sheet(i)
for num in range(0, len(data[name])):
new_worksheet.write(rows_old, num, data[name][num])
new_workbook.save(os_excel_path)
在书写时注意Excel表名要与上面data数据一致,否则数据难以保存。
最后我们写一个run方法讲整体函数进行调用
这里说明一下存到Excel表格内有数据要求即
data{
'表名':[数据]
}
如果不按要求写data很难将数据保存在Excel表格内!!而且在书写时注意Excel表名要与上面data数据一致,否则数据难以保存。
最后我们写一个run方法讲整体函数进行最后的调用
def run(self):
self.get_html()
然后运行发现数据保存成功!这就是咱们第一个实战小项目啦!
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!