python爬取豆瓣电影TOP250数据


Posted in Python onMay 23, 2021

在执行程序前,先在MySQL中创建一个数据库"pachong"。

import pymysql
import requests
import re


#获取资源并下载
def resp(listURL):
    #连接数据库
    conn = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        password = '******',  #数据库密码请根据自身实际密码输入
        database = 'pachong', 
        charset = 'utf8'
    )

    #创建数据库游标
    cursor = conn.cursor()

    #创建列表t_movieTOP250(执行sql语句)
    cursor.execute('create table t_movieTOP250(id INT PRIMARY KEY 												auto_increment NOT NULL ,movieName VARCHAR(20) NOT NULL 									,pictrue_address VARCHAR(100))')

    try:
        # 爬取数据
        for urlPath in listURL:
            # 获取网页源代码
            response = requests.get(urlPath)
            html = response.text

            # 正则表达式
            namePat = r'alt="(.*?)" src='
            imgPat = r'src="(.*?)" class='

            # 匹配正则(排名【用数据库中id代替,自动生成及排序】、电影名、电影海报(图片地址))
            res2 = re.compile(namePat)
            res3 = re.compile(imgPat)
            textList2 = res2.findall(html)
            textList3 = res3.findall(html)

            # 遍历列表中元素,并将数据存入数据库
            for i in range(len(textList3)):
                cursor.execute('insert into t_movieTOP250(movieName,pictrue_address) 									VALUES("%s","%s")' % (textList2[i],textList3[i]))

        #从游标中获取结果
        cursor.fetchall()

        #提交结果
        conn.commit()
        print("结果已提交")

    except Exception as e:
        #数据回滚
        conn.rollback()
        print("数据已回滚")

    #关闭数据库
    conn.close()

#top250所有网页网址
def page(url):
    urlList = []
    for i in range(10):
        num = str(25*i)
        pagePat = r'?start=' + num + '&filter='
        urL = url+pagePat
        urlList.append(urL)
    return urlList


if __name__ == '__main__':
    url = r"https://movie.douban.com/top250"
    listURL = page(url)
    resp(listURL)

结果如下图:

python爬取豆瓣电影TOP250数据

python爬取豆瓣电影TOP250数据

以上就是我的分享,如果有什么不足之处请指出,多交流,谢谢!

以上就是python爬取豆瓣电影TOP250数据的详细内容,更多关于python爬取豆瓣电影的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
介绍Python中的__future__模块
Apr 27 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
python实现逻辑回归的方法示例
May 02 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Python csv模块使用方法代码实例
Aug 29 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python基于数列实现购物车程序过程详解
Jun 09 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Python机器学习之基础概述
May 19 Python
基于Python绘制子图及子图刻度的变换等的问题
聊聊pytorch测试的时候为何要加上model.eval()
May 23 #Python
PyTorch 如何自动计算梯度
May 23 #Python
解决numpy和torch数据类型转化的问题
May 23 #Python
Python 用户输入和while循环的操作
May 23 #Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 #Python
python tkinter Entry控件的焦点移动操作
May 22 #Python
You might like
十大“创意”战术!
2020/03/04 星际争霸
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python re模块介绍
2014/11/30 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python matplotlib可视化实例解析
2020/06/01 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
房产销售经理职责
2013/12/20 职场文书
丧事主持词大全
2014/04/02 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
检察院起诉意见书
2015/05/20 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Golang实现可重入锁的示例代码
2022/05/25 Golang