Beautifulsoup爬虫练习

目标

爬取一定数量的大学排名,并按照要求格式输出

代码

import requests
from bs4 import BeautifulSoup
import bs4

def getHTMLText(url):
    try:
        r = requests.get(url,  timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ''

def fillUnivList(ulist, html):
    soup = BeautifulSoup(html, "html.parser")
    for tr in soup.find('tbody').children:
        if isinstance(tr, bs4.element.Tag):
            tds = tr('td')
            ulist.append([tds[0].string, tds[1].string, tds[3].string])
            
def printUnivList(ulist, num):
    print("{:^10}\t{:<8}\t{:^5}".format("排名", "学校名称", "总分"))
    for i in range(num):
        u = ulist[i]
        print("{:^10}\t{:<8}\t{:^5}".format(u[0], u[1], u[2]))
    print("Suc" + str(num))

def main():
    uinfo = []
    url = 'http://zuihaodaxue.cn/zuihaodaxuepaiming2019.html'
    html = getHTMLText(url)
    fillUnivList(uinfo, html)
    printUnivList(uinfo, 20)

main()

代码运行结果

在这里插入图片描述

### 爬虫练习题与学习资源 爬虫技术作为数据采的重要工具,其学习过程需要结合理论与实践。以下是几个经典的爬虫练习题及其示例代码和教程资源[^1]。 #### 练习题 1: 使用正则表达式爬取网页中的所有链接 目标是从一个给定的网页中提取所有的超链接(`<a>`标签中的`href`属性)。此任务可以帮助初学者熟悉HTML结构以及正则表达式的使用。 ```python import re import requests def extract_links(url): response = requests.get(url) pattern = r'href=["\'](.*?)["\']' links = re.findall(pattern, response.text) return links url = "https://example.com" links = extract_links(url) print(links) ``` #### 练习题 2: 使用BeautifulSoup解析网页内容 通过BeautifulSoup库,从指定网页中提取特定信息,例如文章标题或段落内容。此任务有助于掌握如何解析复杂的HTML文档。 ```python from bs4 import BeautifulSoup import requests def parse_webpage(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') titles = soup.find_all('h1') # 假设要提取的是<h1>标签的内容 return [title.text for title in titles] url = "https://example.com" titles = parse_webpage(url) print(titles) ``` #### 练习题 3: 使用Selenium模拟用户行为 Selenium可以用于自动化浏览器操作,适合处理动态加载的网页内容。以下是一个简单的例子,展示如何打开一个网页并点击按钮。 ```python from selenium import webdriver def automate_browser(): driver = webdriver.Chrome() driver.get("https://example.com") button = driver.find_element_by_id("button-id") # 替换为实际的按钮ID button.click() driver.quit() automate_browser() ``` #### 学习资源推荐 - **官方文档**: Python官方文档提供了丰富的API说明和示例代码。 - **书籍**: 《Python网络数据采》是一本非常实用的书籍,详细讲解了爬虫的基本原理及高级技巧[^2]。 - **在线课程**: Coursera和Udemy等平台上都有高质量的Python爬虫课程,涵盖从基础到进阶的知识点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值