【数据采集与融合技术】第一次大作业

【数据采集与融合技术】第一次大作业

作业①

2020排名 全部层次 学校类型 总分
1 前2% 中国人民大学 1069.0
... ... ... ...

1)完成过程:

1.通过浏览器查看网址内容并找到要爬取的信息

2.检查元素,观察相关信息所在位置

  • 对着元素右键选择检查即可查看该信息在html文档中的位置,简单锁定想寻找的标签

3.根据信息位置选定合适的正则式

  • 可以看到该正则式可以爬取每所大学的排名、级别以及总分情况,检查发现结果正确。(其中有两所大学并列获得29名,故排名在1-29的大学却有3*30项数据)
  • 同理可得大学中文名的信息。

4.清洗匹配结果,得到合适数据

  • 将粗糙的数据各项处理后得到完整精炼的结果

5.调整输出格式,输出结果

  • 中英文字符不同会使得直接输出的结果无法对齐不美观,使用自定函数将半角字符转换为全角字符输出
def chartrans(i):  # 半角字符转全角字符
    return chr(ord(i) + 65248)

def strtrans(s):  # 半角字符串转全角字符串
    new = ''
    s = str(s)
    for i in s:
        new += chartrans(i)
    return new
  • 最后部分结果如下:

2)心得体会:

之前做过类似的作业所以总的来说算是轻车熟路,流程大概也熟悉了,多利用检查和浏览器F12让我更有方向地寻找所需数据。

作业②

序号 城市 AQI PM2.5 SO2 No2 Co 首要污染物
1 北京 55 6 5 1.0 225
... ... ... ... ... ... ... ...

1)完成过程:

1.同样的先来看看网站长什么样子

2.检查检查数据藏在哪~

  • 找到了表头
  • 数据也整齐摆好了

3.大胆爬!

  • 根据检查的结果查找相应标签,再根据结果对搜索方法或者后续数据清洗方法进行调整就好

4.整理数据

  • 发现需要的数据全在标签的注释内!再根据爬下来的数据内容稍加调整即可!

5.结果

  • 不是很齐但我可以接受!

2)心得体会:

流程大体与前文相似,只是这次网站比较特殊,好在文档结构不难。爬下来的数据中不止有所需的AQI实时报的数据,还有AQI日报中不需要的数据,所幸简单筛选后就去除了多余的数据。

作业③

  • 要求:使用urllib和requests和re爬取一个给定网页的所有图片
  • 网站:http://news.fzu.edu.cn/
  • 输出信息:将自选网页内的所有jpg文件保存在一个文件夹中

1)完成过程:

1.继续看看网站长什么样

  • Beautiful!非常好看!!!

2.这次要找的是图片!

  • 可以看到图片url不止是img标签中src属性的值,还需要在之前加上该网站的地址

3.试着爬爬先

  • 可以看到图片格式存在不同

4.再整理下数据


这样就可以得到图片url与后缀了!

5.图片下载与保存

  • 简单设置好路径与图片名称就可以通过requests.get方法结合图片url下载好图片啦
try:
    resp = requests.get(url)
    resp = resp.content
    f = open(path + str(index) + '.' + end, 'wb')
    f.write(resp)
    f.close()
    index += 1
except Exception as err:
    print(err)

6.结果

2)心得体会:

作业③与其他作业的不同之处在于本次要爬取的信息从文字变成了图片,但万变不离其宗,明确需要的数据为图片url后,依旧照着之前的流程爬取,但爬取得到的url并不完整。通过图片源可知真实url为网站url与爬取的信息进行拼接,接下来只需按照下载流程下载即可。

代码

posted @ 2021-10-01 15:28  Poootato  阅读(16)  评论(0编辑  收藏  举报