学期:2021-2022学年第一学期

    学 院 大数据与智能工程学院 年 级、 专 业、 班 18级数据科学与大数据技术(专升本)一班 姓 名
    学号
    实验项目 名称 千峰官网的链接获取

    实验学时: 3h 同组学生姓名: 王美琴、尤博欣、周青青、李昕辰 实验地点: 9317
    实验日期: 实验成绩: 批改教师: 批改时间:
    指导教师评阅:

    1. 实验目的:编写程序,实现千峰官网的链接获取
    2. 实验原理:requests请求、re正则表达式
    3. 实验环境 :win10、python3.9、vscode、edge
    4. 实验步骤:
      1. 携带请求头请求豆瓣主页
      2. 使用re正则表达式语法解析网页数据
      3. 输出获取的数据

    核心代码:

    1. import urllib.request
    2. import re
    3. def getlink(url) :
    4. #模拟浏览器
    5. headers ={ "User - Agent" : "Mozilla/5.0 (Windows NT 6.1; win64; x64;rv:60. 0)Gecko/20100101 Firefox/60.0",
    6. "Cookie":"Hm_lvt_e7700eea32c656a20709c2c05e79ef93=1638352450; Hm_lpvt_e7700eea32c656a20709c2c05e79ef93=1638352450"}
    7. opener = urllib. request. build_opener()
    8. opener. addheaders = [ headers]
    9. # 井将opener安装为全局
    10. urllib.request.install_opener ( opener )
    11. file = urllib. request. urlopen(url)
    12. data = str(file. read())
    13. print(data)
    14. # 井根据需求构建正则表达式
    15. pat = '(https?://[^\s)";]+(\.(\w|/)*))'
    16. link = re. compile( pat). findall(data)
    17. # 井使用set函数天然去重复元素
    18. link = list(set(link))
    19. return link
    20. # 井指定需要爬取的网页
    21. # url = 'http://www. 1000phone. com/'
    22. url = 'http://www.1000phone.com/js/index.1dcd767c.js'
    23. #获取对应网页中包含的链接地址
    24. linklist = getlink(url)
    25. # print(linklist)
    26. #遍历列表结果分别输出
    27. for link in linklist:
    28. print(link[0])
    29. print(len(linklist))
    1. 实验结果及分析:

    通过requests库,并添加网页请求头,使用代理IP,请求网页url,得到网页数据源代码,并使用re语法,进行数据整理提取,最后直接输出寻找的数据。

    1. 实验总结:

    通过这次爬取千峰网页的链接的实验,小组成员熟悉requests对象的作用是获取所有从客户端提交到服务器的请求信息,requests库中获取客户端对Web服务器发送的各类请求信息,并提供GET方法携带仿照的浏览器UA标识请求页面数据。