帮我写一段爬虫代码,要求:访问豆瓣电影Top250(https://movie.douban.com/top250?start=0),获取每部电影的中文片名、排名、评分及其对应的链接,按照“排名-中文片名-评分-链接”的格式显示在屏幕上。
时间: 2024-10-08 21:03:13 浏览: 52
计算机网络课程爬虫实验.docx
这是一个基本的Python Scrapy爬虫示例,用于获取豆瓣电影Top250的电影信息。首先,你需要安装Scrapy库,然后创建一个新的Scrapy项目并配置好。以下是简单的爬虫代码:
```python
import scrapy
from bs4 import BeautifulSoup
class DoubanMovieSpider(scrapy.Spider):
name = 'douban_movie'
start_urls = ['https://movie.douban.com/top250?start=0']
def parse(self, response):
soup = BeautifulSoup(response.text, 'lxml')
# 获取电影列表
movie_lists = soup.select('.subject-item')
for movie in movie_lists:
rank = movie.find('span', class_='pt绩')['data-title'] # 排名
title = movie.h3.a['title'] # 中文片名
score = movie.find('span', class_='rating_num').text # 评分
link = movie.h3.a['href'] # 链接
yield {
'排名': rank,
'中文片名': title,
'评分': score,
'链接': 'https://movie.douban.com' + link, # 添加前缀
}
# 搜索下一页
next_page = response.css('.next')
if next_page:
next_url = response.urljoin(next_page.extract_first().xpath('@href').get())
yield response.follow(next_url, self.parse)
# 使用Scrapy运行爬虫
def run_spider():
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess({
'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',
'FEED_FORMAT': 'csv', # 可选择json、xml或其他格式
'FEED_URI': 'douban_movies.csv' # 输出文件路径
})
process.crawl(DoubanMovieSpider)
process.start()
if __name__ == "__main__":
run_spider()
```
这个代码会依次抓取每页的电影信息,并将数据保存到CSV文件中。注意,由于网页结构可能会有变化,实际运行时可能需要调整CSS选择器以适应最新的页面布局。
阅读全文