python爬取top250豆瓣电影
时间: 2023-11-05 07:03:56 浏览: 67
以下是一份简单的 Python 代码,用于从豆瓣电影网站上爬取 top250 电影信息:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
def get_movies(url):
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.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})
movie_name_list = []
for movie_li in movie_list_soup.find_all('li'):
detail = movie_li.find('div', attrs={'class': 'hd'})
movie_name = detail.find('span', attrs={'class': 'title'}).getText()
movie_name_list.append(movie_name)
next_page = soup.find('span', attrs={'class': 'next'}).find('a')
if next_page:
return movie_name_list, url + next_page['href']
return movie_name_list, None
while url:
movies, url = get_movies(url)
for movie in movies:
print(movie)
```
该代码的主要思路是:
- 构造请求头部,以免被服务器拒绝访问。
- 使用 requests 库发送 HTTP 请求,并使用 BeautifulSoup 库解析 HTML 页面。
- 使用 find() 方法查找 HTML 标签和属性,以获取电影名称和下一页链接。
- 循环遍历每一页,并将每个电影名称打印到控制台上。
需要注意的是,由于豆瓣电影网站的防爬虫机制较为严格,因此在编写爬虫代码时需要尽量模拟人类用户的行为,包括设置请求头部、使用代理IP等。此外,还应该注意遵循 robots.txt 规则,以免被豆瓣电影网站封禁 IP。
阅读全文