python爬虫框架案例
时间: 2025-05-16 11:10:49 浏览: 14
### Python 爬虫框架实例教程及相关案例
#### 使用Scrapy框架构建通用爬虫
Scrapy 是一个强大的Python爬虫框架,适用于多种场景下的数据抓取任务。通过 `CrawlSpider` 类可以快速搭建起能够遍历多个页面并提取所需信息的爬虫程序[^1]。
下面是一个简单的 CrawlSpider 示例代码:
```python
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class ExampleSpider(CrawlSpider):
name = 'example'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com/']
rules = (
Rule(LinkExtractor(allow=r'items'), callback='parse_item', follow=True),
)
def parse_item(self, response):
item = {}
item['url'] = response.url
item['title'] = response.css('h1::text').get()
return item
```
此代码定义了一个名为 `ExampleSpider` 的爬虫类,它会从指定网站开始访问,并遵循链接规则自动跳转到其他页面进行解析。
#### 豆瓣电影Top250爬取案例
另一个经典的 Python 爬虫练习目标就是获取豆瓣电影 Top250 列表中的影片名称及其评分等内容[^2]。这里给出一段简化版实现逻辑作为参考:
```python
import requests
from bs4 import BeautifulSoup
def fetch_douban_top_movies():
url = "https://movie.douban.com/top250"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
movies = []
while True:
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, 'html.parser')
items = soup.select('.item')
for i in items:
title = i.find('span', class_='title').string.strip()
rating_num = float(i.find('span', class_='rating_num').string.strip())
movies.append((title, rating_num))
next_page = soup.find('a', string="后页>")
if not next_page or 'href' not in next_page.attrs:
break
url = f"https://movie.douban.com{next_page['href']}"
fetch_douban_top_movies()
```
上述脚本利用 Requests 库发起 HTTP 请求以及 Beautiful Soup 解析 HTML 文档结构来完成整个过程。
#### 十大Python爬虫工具推荐
除了 Scrapy 和基本请求处理外,还有许多其他的 Python 爬虫解决方案可供选择,比如 Selenium、Pyppeteer 等支持动态加载网页内容的技术;或者像 Pyspider 这样轻量级但功能全面的选择等等[^3]。
每种方法都有其适用范围,在实际应用过程中可以根据需求挑选合适的方案加以实践探索。
---
阅读全文
相关推荐

















