Python爬取网页电影的名字与信息绝了!”

本文分享了一位互联网新手使用Python爬虫获取网页电影信息的体验,包括实例代码展示和学习资源推荐,如开发环境安装教程、Python学习路线图等。通过文章,读者可以了解到Python爬虫的基本应用。

本人,互联网大文盲,就算我看过一万句夸人/食物/景色的词句,真当我想夸的时候,嘴里只能憋出一句“绝了”!今天这篇文章我只想告诉你绝了!

在这里插入图片描述

实例代码,仅参考使用:

import time
import traceback
import requests
from lxml import etree
import re
from bs4 import BeautifulSoup
from lxml.html.diff import end_tag
import json
import pymysql
#连接数据库  获取游标
def get_conn():
    """
    :return: 连接,游标
    """
    # 创建连接
    conn = pymysql.connect(host="82.157.112.34",
                    user="root",
                    password="root",
                    db="MovieRankings",
                    charset="utf8")
    # 创建游标
    cursor = conn.cursor()  # 执行完毕返回的结果集默认以元组显示
    if ((conn != None) & (cursor != None)):
        print("数据库连接成功!游标创建成功!")
    else:
        print("数据库连接失败!")
    return conn, cursor
#关闭数据库连接和游标
def close_conn(conn, cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()
    return 1
def get_iqy():
    #   获取数据库总数据条数
    conn, cursor = get_conn
### 使用 Python 爬虫获取豆瓣电影 Top 250 的片长时间数据 为了实现这一目标,可以采用 `requests` 和 `BeautifulSoup` 库来解析网页并提取所需的数据。下面是一个完整的解决方案: #### 导入库 首先安装必要的库: ```bash pip install requests beautifulsoup4 openpyxl ``` 接着导入这些库: ```python import requests from bs4 import BeautifulSoup import re import time import random from openpyxl import Workbook ``` #### 获取单页电影列表 定义函数用于请求特定页面的内容,并返回该页面上所有的电影条目。 ```python def get_movie_list(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") movie_items = [] for item in soup.select('div.item'): title = item.find('span', class_='title').get_text(strip=True) duration_match = item.find(text=re.compile(r'\d{2,3}分钟')) duration = int(re.search(r'(\d+)', str(duration_match)).group()) if duration_match else None movie_items.append({ 'title': title, 'duration': duration }) return movie_items ``` 此部分代码会访问给定 URL 并从中抽取每部电影名字以及其播放时间(如果存在)。注意这里假设时长是以“XX分钟”的形式给出;如果不是这种情况,则可能需要调整正则表达式的匹配模式[^1]。 #### 处理多页结果 由于豆瓣 TOP 250 是分页显示的,因此还需要循环遍历所有页面以收集全部信息。 ```python base_url = 'https://movie.douban.com/top250?start=' all_movies = [] for i in range(0, 250, 25): # 豆瓣TOP250分为10页展示 url = f'{base_url}{i}' movies_on_page = get_movie_list(url) all_movies.extend(movies_on_page) sleep_time = random.uniform(1, 3) # 随机等待一段时间防止被封IP time.sleep(sleep_time) ``` 这段脚本通过改变参数 start 来切换不同的页面索引,从而获得整个榜单上的所有记录。每次迭代之间加入了短暂休眠以防触发反爬机制[^2]。 #### 存储至 Excel 文件 最后一步就是把抓取下来的数据保存成易于查看的形式,比如 Excel 表格。 ```python wb = Workbook() ws = wb.active ws.title = "Douban Movie Duration" headers = ['Title', 'Duration'] ws.append(headers) for movie in all_movies: row_data = [ movie['title'], movie['duration'] or '' ] ws.append(row_data) output_file = './movies_duration.xlsx' wb.save(output_file) print(f'Data has been saved to {output_file}') ``` 上述代码创建了一个新的工作簿对象并将头部信息和每一行的具体内容依次追加进去,最终导出为名为 `movies_duration.xlsx` 的文件[^3]。
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunyun云芸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值