写一个python爬虫爬取电影的代码
时间: 2023-12-01 07:56:31 浏览: 112
以下是一个简单的Python爬虫代码,用于从IMDb网站上获取电影信息。
```python
import requests
from bs4 import BeautifulSoup
url = 'https://www.imdb.com/chart/top'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.select('td.titleColumn')
crew = [a.attrs.get('title') for a in soup.select('td.titleColumn a')]
ratings = [b.attrs.get('data-value') for b in soup.select('td.posterColumn span[name="ir"]')]
for i in range(len(movies)):
print(f'{i+1}. {movies[i].text.strip()} ({crew[i]}) - IMDb rating: {ratings[i]}')
```
这个代码使用requests库发送HTTP请求,然后使用BeautifulSoup库解析HTML文档。该代码从IMDb的电影排行榜(https://www.imdb.com/chart/top)获取电影标题、演职员信息和评分,并将它们打印出来。
相关问题
python爬虫爬取电影数据代码
在Python中编写爬虫获取电影数据,我们可以使用一些流行库如`requests`用于发送HTTP请求,`BeautifulSoup`或`lxml`处理HTML内容,以及`pandas`存储数据。这里是一个基本的示例,展示如何从一个网站抓取电影名称和链接:
```python
import requests
from bs4 import BeautifulSoup
# 目标网页URL
url = "https://www.example.com/movie-list"
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到电影列表元素,这通常由class或id标识
movie_elements = soup.find_all('div', class_='movie-item')
# 存储数据结构,例如字典或列表
movies_data = []
for element in movie_elements:
title = element.find('h2').text
link = element.find('a')['href']
movies_data.append({'title': title, 'link': link})
# 使用pandas将数据转换成DataFrame并保存
import pandas as pd
df_movies = pd.DataFrame(movies_data)
df_movies.to_csv('movies.csv', index=False)
else:
print(f"Failed to fetch data with status code {response.status_code}")
用python爬虫爬取电影票房代码
这里提供一个简单的电影票房爬虫示例,使用的是 requests 和 BeautifulSoup 库:
```python
import requests
from bs4 import BeautifulSoup
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
# 设置要爬取的电影名称和对应的链接
movies = {'流浪地球': 'https://www.endata.com.cn/BoxOffice/MovieStock/movieShow.html?id=527830',
'复仇者联盟4:终局之战': 'https://www.endata.com.cn/BoxOffice/MovieStock/movieShow.html?id=522674',
'战狼2': 'https://www.endata.com.cn/BoxOffice/MovieStock/movieShow.html?id=492038'}
for movie, url in movies.items():
# 发送 GET 请求获取 HTML 页面
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析 HTML 页面,获取票房信息
box_office = soup.find('span', attrs={'id': 'piaofang'}).text
total_box_office = soup.find('span', attrs={'id': 'boxoffice'}).text
print('{}的票房为:{},总票房为:{}'.format(movie, box_office, total_box_office))
```
这个爬虫的实现十分简单,可以根据需要进行修改,例如添加更多的电影名称和链接。注意,爬取电影票房信息时需要注意反爬虫机制,可以设置请求头中的 User-Agent 等信息以模拟浏览器访问。
阅读全文