python基础学习——利用requests库与bs4来定向爬取中国大学排行

本文介绍了一个使用Python的requests和BeautifulSoup库爬取指定网站上的中国大学排名信息的方法。该脚本能够获取网页内容并解析表格数据,提取出排名前20的大学名称及其总分,最终将这些信息以美观的表格形式输出。
import requests
import bs4
from bs4 import BeautifulSoup

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""
    return ""
def fillUnivList(ulist,html):
    try:
        soup = BeautifulSoup(html,"html.parser")
        i=1
        for tr in soup.find('tbody').children:
            if isinstance(tr,bs4.element.Tag):
                tds = tr('td')
                ulist.append([i,tds[1].string,tds[3].string])
                i=i+1

    except:
        return ""
def printUnivList(ulist,num):
    try:
        tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
        print(tplt.format("排名","学校名称","总分",chr(12288)))
        for i in range(num):
            u = ulist[i]
            print(tplt.format(u[0],u[1],u[2],chr(12288)))

        print("Suc"+str(num))
    except:
        return ""

if __name__ =="__main__":
    uinfo = []
    url = "http://www.zuihaodaxue.cn/zuihaodaxuepaiming2017.html"
    html = getHTMLText(url)

    fillUnivList(uinfo,html)
    printUnivList(uinfo,20)


### Python 定向网页抓取教程 对于Python定向网页抓取,可以利用`requests`来发送HTTP请求并获取目标网站的数据。为了处理HTML文档中的特定部分,通常会结合使用`BeautifulSoup`或者`lxml`解析器。 #### 使用 `requests` `BeautifulSoup` 下面是一个简单的例子,演示如何从指定URL中提取所需的信息: ```python import requests from bs4 import BeautifulSoup def fetch_page(url): response = requests.get(url) if response.status_code == 200: return response.text else: raise Exception(f"Failed to load page {url}") def parse_html(html_content, tag_name, class_=""): soup = BeautifulSoup(html_content, 'html.parser') elements = soup.find_all(tag_name, class_=class_) results = [] for element in elements: text = element.get_text(strip=True) if text: results.append(text) return results if __name__ == "__main__": url = "http://example.com" html = fetch_page(url) titles = parse_html(html, "h2", "post-title") # 修改标签名类名以匹配实际需求 print(titles) ``` 这段代码展示了基本的工作流程:先通过`fetch_page()`函数访问给定网址;再调用`parse_html()`方法分析返回的HTML字符串,并从中筛选出符合条件的内容[^1]。 需要注意的是,在编写爬虫程序之前应当阅读目标站点的服务条款,确保遵守其规定。此外,频繁地发起大量请求可能会被服务器识别为恶意行为而遭到封禁IP地址等惩罚措施。因此建议合理设置延时间隔以及遵循robots.txt文件指示的操作范围[^2]。 #### 实战技巧提示 当面对更复杂的场景时,比如JavaScript动态加载内容,则可能需要用到Selenium这样的工具模拟浏览器操作。而对于登录验证等问题,则需研究对应的API接口或是表单提交机制[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值