scrapy爬取top250
时间: 2024-01-08 15:04:14 浏览: 28
好的,以下是使用Scrapy爬取豆瓣电影Top250的示例代码:
1. 创建Scrapy项目
在命令行中输入以下命令:
```
scrapy startproject douban_top250
```
2. 创建Spider
在douban_top250/spiders目录下创建一个名为douban_spider.py的文件,输入以下代码:
```python
import scrapy
class DoubanSpider(scrapy.Spider):
name = 'douban'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
movie_list = response.xpath('//div[@class="article"]//ol[@class="grid_view"]/li')
for movie in movie_list:
yield {
'title': movie.xpath('.//span[@class="title"][1]/text()').extract_first(),
'score': movie.xpath('.//span[@class="rating_num"]/text()').extract_first(),
'link': movie.xpath('.//div[@class="pic"]/a/@href').extract_first()
}
next_page = response.xpath('//span[@class="next"]/a/@href')
if next_page:
url = response.urljoin(next_page[0].extract())
yield scrapy.Request(url, self.parse)
```
3. 运行Spider
在命令行中进入douban_top250目录,输入以下命令:
```
scrapy crawl douban -o douban_top250.json
```
这将启动爬虫并将结果保存到douban_top250.json文件中。
注意:由于豆瓣网站的反爬虫机制比较严格,建议设置一定的爬虫延迟,并在settings.py文件中添加以下代码:
```python
DOWNLOAD_DELAY = 0.5
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'
```
这将设置爬虫延迟为0.5秒,并设置User-Agent为Chrome浏览器,以减少被反爬虫机制识别的几率。