Skip to content

S1exy/Crawler_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

python爬虫

1.Data_Analysis文件夹(教务处数据分析)

这些数据范围为从福大教务处刚开始 既 2022 - 10 - 28 开始的范围数据

1.统计每月的通知数量在2023-2024年的变化




p3



根据这个从2003到2024的数据(2022因为数据太少而且不精准所以去掉了)

  • 可以分析出在 2 月 和 7 - 8 月的假期,通知数量不管是均值还是个别数量都出现了谷值
  • 根据置信值区间(98%)可以统计出在每年的九月是通知数量的最高峰(可能和新生的入学有关?军训)
  • 而在3-6月随着年份的不同数值不是那么集中,可以从置信的宽度看出来,明显数据差异较大



所以可以对未来进行数据分析,接下来的趋势大概还是如m曲线一样的走势


2.统计通知人的类型:




p1


可以得到以下结论:


  • 教学运行作为通知人在福大教务处主要发布信息
  • 教材中心发布的最少


3.附件下载次数与通知人的关系



得到了有关于下载次数和通知人之间的图表

p2


可以得出以下结论:

  1. 实践科的附件最受欢迎?断崖式领先...
  2. 似乎教学通知大家都不看哦,20几年的数据不到2000条


代码部分放在了(Data_Analysis文件夹内,数据为output_test


2.Fzu文件夹(福大教务处爬取)


1.福专主页爬取.py



​ 通过 requests 方法获取到福大教务处的页面地址,先进行解析获取每一页的数据,再通过拼凑的方法得到每一页的 url 进行读取。

Caution

分别获取到了六个点

  • 通知人

  • 标题

  • 日期

  • 详情页面链接

  • 附件下载总次数 (没想到很好的将附件分离出去的操作 故直接进行累加了)

  • 附件名字(中间以 进行分离)


image-20241114191018350


一些奇怪的注意事项

  1. 建议导入 time 库可能是我抓取附件下载地址的时候重复 使用了 get 导致循环过多可能被ban


2.attachment.py


​ 这个文件作为自建的模块用来处理附件,通过导入页面的详细地址,对附件的名字进行抓包判断,若没有附件直接返回空列表和0(表明没有附件)


一些奇怪的注意事项


  1. 对附件名字的处理,这边需要特别点名一些奇怪的党政文件,正常文件的转换为中文输出可以这样子写

file_name.encode('iso-8859-1').decode('utf-8')


可是这类文件不一样他需要进行进行这样子的转换才能输出中文


file_name.encode('utf-8').decode('utf-8')


而且使用第一类对于这类文件会发生 UnicodeEncodeError 的报错


所以我的解决方案就是使用 try - except 把报错提取 然后进行更改


        try:
            # 尝试执行的代码
            file_name2.append(file_name1.encode('iso-8859-1').decode('utf-8'))
        except UnicodeEncodeError:
            # 退而求其次
            file_name2.append(file_name1.encode('utf-8').decode('utf-8'))
            print("  **文件  ")



  1. 对于提取下载次数问题的处理,我发现直接用xpath无法提取到下载的次数,再尝试几次无果后,我发现这个下载次数再一个get命令下的返回包中,而且每一个都是相同的,只是id不同,故而我就先将每一个的id提取出来,拼凑成一个url再调用另一个模块 (get_download_numbers.py) 对这个下载次数进行处理。



3.get_download_numbers.py


​ 这个模块通过提取get命令返回的值进行提取下载次数的操作


一些奇怪的注意事项

  1. 其实也没啥,就是获取下来的是个str类型的数据,需要稍微对数据进行一些处理,得到最后的数字类型的下载次数

4.csv_making.py


​ 这个模块主要有两个功能,创建一个csv供写入使用和传入数据写入csv文件中


一些奇怪的注意事项

  1. 没啥注意的主要是复习了一些有关于文件oi的问题

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published