数据采集作业1

作业1

1.大学排名动态网页爬取实验

题目要求:用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020 )的数据,屏幕打印爬取的大学排名信息。
核心代码

               #提取排名:定位<div class="ranking">标签,清除空格
               rank_elem = cols[0].find('div', class_=lambda x: x and 'ranking' in x)
               #提取学校中文名:定位<span class="name-cn">标签,清除空格
               name_elem = cols[1].find('span', class_='name-cn')
               #提取省市:直接取第3列文本,清除空格和注释
               province = cols[2].text.strip().replace('<!-- -->', '')
               #提取学校类型:直接取第4列文本,清除空格和注释
               category = cols[3].text.strip().replace('<!-- -->', '')
               #提取总分:直接取第5列文本,清除空格和注释
               score = cols[4].text.strip().replace('<!-- -->', '')

运行结果

1

2

3
提取我们需要的排名,学校名称,省市,学校类型,总分

2.心得体会

爬取的时候要注意不要把985,211还有英文提取,只要中文名。不足的是有些大学名字比较长,格式不够好,有些没对齐

作业2

1.商城商品比价定向爬虫实验

题目要求:用requests和re库方法设计某个商城(自已选择)商品比价定向爬虫,爬取该商城,以关键词“书包”搜索页面的数据,爬取商品名称和价格。
核心代码

pattern = r'<a[^>]*title="([^"]*)"[^>]*>.*?[\u4e00-\u9fa5]*\s*¥?\s*([\d.]+)'

首先用正则表达式匹配包含title属性的a标签,提取商品名称,然后提取价格(包含小数点)

4

运行结果
5

6

2.心得体会

一开始尝试了京东,淘宝,天猫,都失败了,这些反爬机制太强了。最后选择当当网,主要就是通过正则表达式来提取我们需要的数据,不足的是有些没用的数据也被提取了。

作业3

1.网页图片批量下载实验

题目要求:爬取一个给定网页(https://news.fzu.edu.cn/yxfd.htm)或者自选网页的所有JPEG、JPG或PNG格式图片文件
核心代码

pattern = r'<img[^>]*src=["\']([^"\']*\.(?:jpg|jpeg|png))["\'][^>]*>'

用正则表达式匹配img标签

8

patterns = [
            r'<a[^>]*href=["\']((?:ztwy1/)?\d+\.htm)["\'][^>]*>',
            r'<a[^>]*href=["\'](/\d+\.htm)["\'][^>]*>',
        ]

匹配翻页链接的模式

7
运行结果

9
一共爬取了22张图片,总共2页,图片都保存到本地文件夹里

2.心得体会

我爬取的是 https://news.fzu.edu.cn/ztwy1.htm,首先爬取第一页的所有img,然后翻页继续爬取,直到没有下一页。

posted @ 2025-10-25 20:19  yeeopuuo  阅读(12)  评论(0)    收藏  举报