共计 1942 个字符,预计需要花费 5 分钟才能阅读完成。
Python 爬虫是一种利用 Python 语言编写的程序,可以自动地从互联网上获取我们感兴趣的信息。Python 爬虫的基本流程如下:
- 发送请求。使用 Python 的 requests 库或 urllib 库,向目标网站发送 HTTP 请求,获取网页的源代码。
- 解析数据。使用 Python 的解析库,如 BeautifulSoup 或 lxml,对网页源代码进行解析,提取出我们需要的数据。
- 存储数据。将提取出的数据保存到本地文件或数据库中,方便后续的分析和使用。
下面我们以一个简单的例子来说明 Python 爬虫的具体步骤。我们的目标是爬取豆瓣电影网站上的电影信息,包括电影名称、评分、导演、演员等。
首先,我们需要找到目标网站的 URL,例如:https://movie.douban.com/top250。然后,我们可以使用 requests 库来发送请求,获取网页源代码 :
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text # 网页源代码
接下来,我们需要使用解析库来提取我们需要的数据。这里我们使用 BeautifulSoup 库,它可以方便地根据 HTML 标签和属性来定位数据。例如,我们可以使用 find_all 方法来找到所有包含电影信息的 div 标签:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_='item') # 包含电影信息的 div 标签列表
然后,我们可以遍历 movies 列表,对每个 div 标签进行进一步的解析,提取出电影名称、评分、导演、演员等信息。这里我们使用 find 方法来找到指定标签和属性的子节点,并使用 text 方法来获取节点的文本内容:
for movie in movies:
title = movie.find('span', class_='title').text # 电影名称
rating = movie.find('span', class_='rating_num').text # 评分
info = movie.find('div', class_='bd').find('p').text # 包含导演和演员信息的文本
info = info.strip() # 去除空白字符
director = info.split('n')[0].split('导演:')[1].split('主演:')[0].strip() # 导演
actors = info.split('n')[0].split('主演:')[1].strip() if '主演' in info else '' # 演员
print(title, rating, director, actors) # 打印结果
最后,我们可以将提取出的数据保存到本地文件或数据库中。这里我们使用 Python 自带的 csv 模块,将数据保存到一个 csv 文件中:
import csv
with open('douban_movies.csv', 'w', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['电影名称', '评分', '导演', '演员']) # 写入表头
for movie in movies:
title = movie.find('span', class_='title').text # 电影名称
rating = movie.find('span', class_='rating_num').text # 评分
info = movie.find('div', class_='bd').find('p').text # 包含导演和演员信息的文本
info = info.strip() # 去除空白字符
director = info.split('n')[0].split('导演:')[1].split('主演:')[0].strip() # 导演
actors = info.split('n')[0].split('主演:')[1].strip() if '主演' in info else '' # 演员
writer.writerow([title, rating, director, actors]) # 写入一行数据
通过以上的代码,我们就完成了一个简单的 Python 爬虫,可以爬取豆瓣电影网站上的电影信息。当然,这只是一个入门的例子,实际的爬虫可能会遇到更多的问题和挑战,例如网页的分页、动态加载、反爬机制等。这些问题需要我们不断地学习和探索,才能编写出更高效和稳定的爬虫程序。
python 相关课程推荐:python 相关课程
原文地址: Python 怎么进行爬虫?