Python爬虫基本原理及案例

您所在的位置:网站首页 脚本精灵原理 Python爬虫基本原理及案例

Python爬虫基本原理及案例

2023-06-06 04:19| 来源: 网络整理| 查看: 265

Python爬虫基本原理及案例

Python爬虫是一种利用Python语言编写的程序,可以自动从互联网上获取和处理数据的工具。Python爬虫的基本原理是通过发送HTTP请求,获取网页的源代码,然后利用解析库或正则表达式等方法,提取出所需的数据。Python爬虫的优点是简单易用,功能强大,支持多种解析库和网络框架,可以应对各种复杂的网页结构和反爬虫策略。

下面我们来看两个简单的Python爬虫案例,分别是爬取豆瓣电影排行榜和百度百科词条。

案例一:爬取豆瓣电影排行榜 豆瓣电影排行榜是一个展示最受欢迎电影的网页,我们可以通过Python爬虫来获取排行榜上的电影名称,评分,评价人数等信息。首先,我们需要导入requests库和BeautifulSoup库,分别用于发送HTTP请求和解析HTML代码。然后,我们需要定义一个函数get_html(url),用于获取指定URL的网页源代码。接着,我们需要定义一个函数parse_html(html),用于从网页源代码中提取出电影信息,并保存到一个列表中。最后,我们需要定义一个函数main(),用于调用前面的函数,并打印出结果。代码如下: python import requests from bs4 import BeautifulSoup def get_html(url): # 发送HTTP请求,获取网页源代码 response = requests.get(url) # 判断响应状态码是否为200 if response.status_code == 200: # 返回网页源代码的文本内容 return response.text else: # 抛出异常 raise Exception('请求失败') def parse_html(html): # 创建BeautifulSoup对象,指定解析器为lxml soup = BeautifulSoup(html, 'lxml') # 获取所有class为item的div标签,这些标签包含了电影信息 items = soup.find_all('div', class_='item') # 创建一个空列表,用于存储电影信息 movies = [] # 遍历每个item标签 for item in items: # 获取电影名称,去除空白字符 title = item.find('span', class_='title').text.strip() # 获取电影评分,转换为浮点数 rating = float(item.find('span', class_='rating_num').text) # 获取电影评价人数,去除人字,转换为整数 comment = int(item.find('span', class_='pl').text.strip('人')) # 将电影信息以字典的形式添加到列表中 movies.append({'title': title, 'rating': rating, 'comment': comment}) # 返回电影信息列表 return movies def main(): # 定义豆瓣电影排行榜的URL url = 'https://movie.douban.com/top250' # 调用get_html函数,获取网页源代码 html = get_html(url) # 调用parse_html函数,提取电影信息 movies = parse_html(html) # 遍历电影信息列表,打印结果 for movie in movies: print(movie['title'], movie['rating'], movie['comment']) # 执行main函数 if __name__ == '__main__': main() 运行结果如下: 肖申克的救赎 9.7 2362546 霸王别姬 9.6 1770620 这个杀手不太冷 9.4 2122268 阿甘正传 9.5 1900600 美丽人生 9.5 1027361 ... 案例二:爬取百度百科词条 百度百科是一个汇集了各种知识的网站,我们可以通过Python爬虫来获取某个词条的标题,摘要,正文等信息。首先,我们需要导入requests库和BeautifulSoup库,分别用于发送HTTP请求和解析HTML代码。然后,我们需要定义一个函数get_html(url),用于获取指定URL的网页源代码。接着,我们需要定义一个函数parse_html(html),用于从网页源代码中提取出词条信息,并保存到一个字典中。最后,我们需要定义一个函数main(),用于调用前面的函数,并打印出结果。代码如下: ```python import requests from bs4 import BeautifulSoup def get_html(url): # 发送HTTP请求,获取网页源代码 response = requests.get(url) # 判断响应状态码是否为200 if response.status_code == 200: # 返回网页源代码的文本内容 return response.text else: # 抛出异常 raise Exception('请求失败') def parse_html(html): # 创建BeautifulSoup对象,指定解析器为lxml soup = BeautifulSoup(html, 'lxml') # 获取词条标题,去除空白字符 title = soup.find('h1').text.strip() # 获取词条摘要,去除空白字符 summary = soup.find('div', class_='lemma-summary').text.strip() # 获取词条正文,去除空白字符和引用标签 content = soup.find('div', class_='lemmaWgt-lemmaCatalog').text.strip().replace('[', '').replace(']', '') # 将词条信息以字典的形式返回 return {'title': title, 'summary': summary, 'content': content} def main(): # 定义百度百科Python词条的URL url = 'https://baike.baidu.com/item/Python/407313' # 调用get_html函数,获取网页源代码 html = get_html(url) # 调用parse_html函数,提取词条信息 entry = parse_html(html) # 打印结果 print(entry['title']) print(entry['summary']) print(entry['content']) # 执行main函数 if __name__ == '__main__': main() 运行结果如下:

Python Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

历史沿革

1989年圣诞节期间,在阿姆斯特丹,Guido von Rossum为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

1991年,在alt.sources新闻组上发布了第一个公开版本(0.9.0)。

1994年1月,在第一届Python会议中,决定了该语言程序正式名为Python。

1994年10月17日,在comp.lang.python新闻组发布了第一个错误修正版本1.0.1。

2000年10月16日,发布了Python 2.0版,增加了实现完整的垃圾回收,并且支持Unicode。

2008年12月3日,发布了Python 3.0版。此版不完全兼容之前的Python源代码。不过,很多新特性后来也



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3