102302110高悦作业1

• 作业①:用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020 )的数据,屏幕打印爬取的大学排名信息。
1.代码与实验结果
首先打开网页,查看网页的源代码,找出并分析所要爬取内容的html结构
image
根据这个结构,用beautifulsoup进行解析并且提取文本输出

for line in lines:
    rank=line.find("div", class_="ranking")
    if rank is None:
        rank=""
    else:
        rank=rank.text.strip()
    name=line.find("span", class_="name-cn")
    if name is None:
        name=""
    else:
        name=name.text.strip()
    tds = line.find_all("td")
    if len(tds)>=4:
        province=tds[2].text.strip()
        type=tds[3].text.strip()
        score=tds[4].text.strip()
    else:
        province=""
        type=""
        score=""
    print(f"{rank:<6}{name:<16}{province:<6}{type:<8}{score}")
![image](https://img2024.cnblogs.com/blog/3714524/202510/3714524-20251025163348866-1616869514.png)

image
2.实验心得:通过这个实验,我了解了一般爬取网页信息的步骤:首先分析网页的源代码,找出、定位所需信息的特征,用bs或正则表达式进行提取,最后输出
• 作业②:用requests和re库方法设计某个商城(自已选择)商品比价定向爬虫,爬取该商城,以关键词“书包”搜索页面的数据,爬取商品名称和价格。
1.代码与实验结果
选择了一个比较小众的网站:没得比
因为怕一直用爬虫访问会被网站禁止访问,因此先爬取下书包的第一页的源代码并保存的本地进行分析
image
分析出相应的结构后,用正则表达式匹配

goods_pattern = re.compile(
            r'<li class="clearfix">.*?' 
            r'<div class="tit">.*?<h6>.*?<a[^>]*?>(.*?)</a>.*?</h6>.*?'  
            r'<span class="red price">\s*¥([0-9.]+)\s*</span>',
            re.DOTALL  
        )
最终结果 博客园图片

image

image

2.心得:前期一直执着于爬取淘宝,然后一直被反爬浪费了很多时间。以及我学会了如何分析正则表达式的写法。

• 作业③:爬取一个给定网页(https://news.fzu.edu.cn/yxfd.htm)或者自选网页的所有JPEG、JPG或PNG格式图片文件
1.代码与实验结果
首先还是先打开网站,找到有关jpg png等所在的特征
image
写出正则表达式,精准匹配

<img\s+src="(/__local/[^"]*?\.(jpg|jpeg|png))"\s+alt="([^"]*)"

image

2.心得:这次的三个作业让我学会了爬取网页的基本步骤

posted @ 2025-10-25 19:50  小堆小堆  阅读(8)  评论(0)    收藏  举报