Python中如何循环爬取猫眼电影标题并存储到TXT文件

然后下一步该爬什么网站,天猫 京东这些么?有没有好的网站教程,教 requests 库和 BeautifulSoup 库爬网站的实例
Python中如何循环爬取猫眼电影标题并存储到TXT文件

3 回复

需求是最大的动力 可以试试爬点小姐姐


import requests
from bs4 import BeautifulSoup
import time

def get_movie_titles(page):
    """获取单页电影标题"""
    url = f'https://maoyan.com/films?offset={(page-1)*30}'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    }
    
    try:
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # 猫眼电影标题选择器(根据实际页面结构调整)
        titles = []
        movie_items = soup.find_all('div', class_='movie-item')
        
        for item in movie_items:
            title_tag = item.find('div', class_='movie-title')
            if title_tag:
                titles.append(title_tag.text.strip())
        
        return titles
        
    except Exception as e:
        print(f"第{page}页抓取出错: {e}")
        return []

def save_to_txt(titles, filename='maoyan_movies.txt'):
    """保存标题到TXT文件"""
    with open(filename, 'a', encoding='utf-8') as f:
        for title in titles:
            f.write(title + '\n')

def main():
    total_pages = 5  # 要爬取的页数
    all_titles = []
    
    for page in range(1, total_pages + 1):
        print(f"正在爬取第{page}页...")
        titles = get_movie_titles(page)
        
        if titles:
            all_titles.extend(titles)
            save_to_txt(titles)
            print(f"第{page}页爬取完成,获得{len(titles)}个标题")
        else:
            print(f"第{page}页未获取到数据")
        
        time.sleep(1)  # 礼貌爬取,避免被封
    
    print(f"\n全部完成!共爬取{len(all_titles)}个电影标题")
    print(f"数据已保存到 maoyan_movies.txt")

if __name__ == '__main__':
    main()

核心要点:

  1. requests发起请求,注意添加User-Agent
  2. BeautifulSoup解析HTML,根据实际页面结构调整选择器
  3. 循环爬取多页,每页间隔1秒避免被封
  4. 使用追加模式写入TXT文件,避免覆盖之前数据

实际使用时需要:

  • 检查猫眼网站的实际HTML结构,可能需要调整movie-itemmovie-title的选择器
  • 如果遇到反爬,可能需要添加更多请求头或使用代理
  • 考虑异常处理,比如网络错误、页面结构变化等

一句话建议:记得检查网站结构并设置合理的爬取间隔。

抓今日头条首页的新闻呗

回到顶部