700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python 网络爬虫笔记5 -- Beautiful Soup库实战

Python 网络爬虫笔记5 -- Beautiful Soup库实战

时间:2021-07-07 05:56:02

相关推荐

Python 网络爬虫笔记5 -- Beautiful Soup库实战

Python 网络爬虫笔记5 – Beautiful Soup库实战

Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。

课程链接:Python网络爬虫与信息提取

参考文档:

Requests 官方文档(英文)

Requests 官方文档(中文)

Beautiful Soup 官方文档

re 官方文档

Scrapy 官方文档(英文)

Scrapy 官方文档(中文)

中国大学排名定向爬虫

软科中国大学排名:/zuihaodaxuepaiming.html

import requestsfrom bs4 import BeautifulSoupimport bs4def get_html_text(url):"""从网络上获取大学排名网页内容"""try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def fill_univ_list(univ_list, html):"""提取网页内容中的信息(大学排名表)到合适的数据结构"""soup = BeautifulSoup(html, "html.parser")# 分析网页源代码,确定检索的内容for tr in soup.find('tbody').children:if isinstance(tr, bs4.element.Tag):tds = tr('td')univ_list.append([tds[0].string, tds[1].string, tds[3].string])def print_univ_list(univ_list, num):"""输出结果,即大学排名表"""# 格式化输出,使用中文字符填充空白实现居中对齐template = "{0:^10}\t{1:{3}^10}\t{2:^10}"print(template.format("排名", "学校名称", "总分", chr(12288)))for i in range(num):u = univ_list[i]print(template.format(u[0], u[1], u[2], chr(12288)))def main():"""输入大学排名的 url,得到排名表"""univ_info = []url = '/zuihaodaxuepaiming.html'html = get_html_text(url)fill_univ_list(univ_info, html)print_univ_list(univ_info, 20) # 20 univsif __name__ == '__main__':print('running crawl_ranking')main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。