学期:2021-2022学年第一学期
| 学 院 | 大数据与智能工程学院 | 年 级、 专 业、 班 | 18级数据科学与大数据技术(专升本)一班 | 姓 名 | 学号 | ||
|---|---|---|---|---|---|---|---|
| 实验项目 名称 | 千峰官网的链接获取 |
实验学时: 3h 同组学生姓名: 王美琴、尤博欣、周青青、李昕辰 实验地点: 9317
实验日期: 实验成绩: 批改教师: 批改时间:
指导教师评阅:
- 实验目的:编写程序,实现千峰官网的链接获取
- 实验原理:requests请求、re正则表达式
- 实验环境 :win10、python3.9、vscode、edge
- 实验步骤:
- 携带请求头请求豆瓣主页
- 使用re正则表达式语法解析网页数据
- 输出获取的数据
核心代码:
import urllib.requestimport redef getlink(url) :#模拟浏览器headers ={ "User - Agent" : "Mozilla/5.0 (Windows NT 6.1; win64; x64;rv:60. 0)Gecko/20100101 Firefox/60.0","Cookie":"Hm_lvt_e7700eea32c656a20709c2c05e79ef93=1638352450; Hm_lpvt_e7700eea32c656a20709c2c05e79ef93=1638352450"}opener = urllib. request. build_opener()opener. addheaders = [ headers]# 井将opener安装为全局urllib.request.install_opener ( opener )file = urllib. request. urlopen(url)data = str(file. read())print(data)# 井根据需求构建正则表达式pat = '(https?://[^\s)";]+(\.(\w|/)*))'link = re. compile( pat). findall(data)# 井使用set函数天然去重复元素link = list(set(link))return link# 井指定需要爬取的网页# url = 'http://www. 1000phone. com/'url = 'http://www.1000phone.com/js/index.1dcd767c.js'#获取对应网页中包含的链接地址linklist = getlink(url)# print(linklist)#遍历列表结果分别输出for link in linklist:print(link[0])print(len(linklist))
- 实验结果及分析:
通过requests库,并添加网页请求头,使用代理IP,请求网页url,得到网页数据源代码,并使用re语法,进行数据整理提取,最后直接输出寻找的数据。
- 实验总结:
通过这次爬取千峰网页的链接的实验,小组成员熟悉requests对象的作用是获取所有从客户端提交到服务器的请求信息,requests库中获取客户端对Web服务器发送的各类请求信息,并提供GET方法携带仿照的浏览器UA标识请求页面数据。
