Python爬虫实战(四):利用代理IP爬取某瓣电影排行榜并写入Excel
2024.01.05 16:08浏览量:8简介:本文将介绍如何使用Python爬虫和代理IP来爬取某瓣电影排行榜,并将数据写入Excel文件。我们将使用requests和BeautifulSoup库来抓取数据,并使用pandas库来处理数据和写入Excel文件。
在开始之前,请确保你已经安装了以下Python库:requests、BeautifulSoup、pandas和openpyxl。你可以使用以下命令在终端或命令提示符中安装这些库:
pip install requests beautifulsoup4 pandas openpyxl
接下来,我们将编写一个Python脚本,该脚本将使用代理IP来爬取某瓣电影排行榜,并将数据写入Excel文件。以下是完整的源码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
创建空的DataFrame来存储数据
movies = pd.DataFrame()
代理IP和端口
proxies = {
‘http’: ‘http://10.10.1.10:3128‘,
‘https’: ‘http://10.10.1.10:1080‘,
}
爬取某瓣电影排行榜的URL
url = ‘https://movie.douban.com/top250‘
发送GET请求并获取响应内容
response = requests.get(url, proxies=proxies)
response.encoding = ‘utf-8’ # 设置编码为utf-8,以便正确解析响应内容
使用BeautifulSoup解析响应内容
soup = BeautifulSoup(response.text, ‘html.parser’)
找到电影列表并提取数据
movieslist = soup.find(‘ol’, class=’gridview’)
for movie in movies_list.find_all(‘li’):
title = movie.find(‘div’, class=’hd’).find(‘a’).gettext()
rating = movie.find(‘div’, class=’bd’).find(‘div’, class=’star’).get_text()[:-2] # 提取评分并去掉末尾的“分”字
director = movie.find(‘div’, class=’bd’).find(‘p’, class=’infor’).find(‘span’, class=’ director’).gettext() # 提取导演姓名
actors = movie.find(‘div’, class=’bd’).find(‘p’, class=’infor’).find_all(‘span’, class=’star’) # 提取演员列表
actors = [actor.gettext() for actor in actors] # 将演员列表转换为字符串列表
storyline = movie.find(‘div’, class=’bd’).find(‘p’, class=’infor’).find(‘span’, class=’g痨’).get_text() # 提取剧情简介
movies = movies.append({‘Title’: title, ‘Rating’: rating, ‘Director’: director, ‘Actors’: actors, ‘Storyline’: storyline}, ignore_index=True) # 将提取的数据添加到DataFrame中
将数据写入Excel文件
movies.to_excel(‘movies.xlsx’, index=False) # index=False表示不将行索引写入Excel文件
发表评论
登录后可评论,请前往 登录 或 注册