python爬取豆瓣TOP100电影
时间: 2023-10-07 16:14:53 浏览: 141
如果你想爬取豆瓣TOP100电影,你可以使用Python的第三方库来帮助你爬取网页信息。
你可以使用Python的requests库来发送HTTP请求并获取网页的内容,再使用Python的Beautiful Soup库来解析网页并提取你想要的信息。
下面是一个简单的例子,它爬取了豆瓣TOP100电影的电影名和评分:
```python
import requests
from bs4 import BeautifulSoup
# 发送HTTP请求并获取网页内容
url = 'https://movie.douban.com/chart'
response = requests.get(url)
html = response.text
# 使用Beautiful Soup解析网页并提取信息
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all(class_='pl2')
for movie in movies:
title = movie.find('a')['title']
rating = movie.find(class_='rating_nums').text
print(title, rating)
```
在这个例子中,我们使用了requests库发送HTTP请求并获取了网页的内容,然后使用Beautiful Soup解析网页并提取了我们想要的信息。
希望这个例子对你有帮助!
相关问题
我想用python爬取豆瓣top100电影数据
好的,你可以使用Python中的requests和BeautifulSoup库来实现这个任务。
首先你需要安装这两个库,你可以使用以下命令在终端或命令行中安装它们:
```
pip install requests
pip install beautifulsoup4
```
接下来,你需要发送一个GET请求到豆瓣电影top100页面,并获取HTML响应。可以使用以下代码:
```python
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
```
接下来,你需要使用BeautifulSoup库解析HTML响应并提取数据。可以使用以下代码:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_='info')
for movie in movies:
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
print(title + ' ' + rating)
```
以上代码会从top100页面中提取出每个电影的标题和评分,并将它们打印出来。
当然,这只是提取电影标题和评分的基本示例,你可以根据需要提取更多的数据。同时,你还需要处理分页和一些反爬虫机制。
帮我写一个完整的python爬取豆瓣top100电影的海报的完整代码
在Python中,我们可以使用requests库来获取网页内容,然后BeautifulSoup库解析HTML并提取我们需要的数据,最后使用`urllib.request.urlretrieve`保存图片到本地。这里是一个简单的示例,用于爬取豆瓣Top100电影的海报链接:
```python
import requests
from bs4 import BeautifulSoup
import os
# 豆瓣Top100电影URL
url = "https://movie.douban.com/top250"
def download_image(title, img_url):
# 定义保存路径,如果文件夹不存在就创建
save_path = f"images/{title}.jpg"
if not os.path.exists("images"):
os.makedirs("images")
try:
response = requests.get(img_url, stream=True)
response.raise_for_status() # 检查请求是否成功
with open(save_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
print(f"海报下载完成: {save_path}")
except Exception as e:
print(f"下载失败: {e}")
def main():
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
# 解析电影标题及海报链接
movie_containers = soup.find_all('div', class_='hd')
for container in movie_containers:
title = container.find('span', itemprop='name').text.strip()
img_url = container.find('img', alt=True)['src']
# 下载海报
download_image(title, img_url)
if __name__ == "__main__":
main()
```
阅读全文