python-16-正则表达式,简单爬虫,爬取电影网站连接到数据库
- 正则表达式
导入模块 import re
匹配
re.match(‘正则表达式’,‘匹配的内容’) ---------------从头开始匹配返回对象
re.search(‘正则表达式’,‘匹配的内容’) ---------------字符串内查找模式匹配,只要找到第⼀个匹配然后返回对象
re.findall(‘正则表达式’,‘匹配的内容’) ----------------查找所有相匹配的内容返回结果
re.sum(‘正则表达式’,‘替换的内容’,‘匹配的内容’)--------------------查找完后将结果进行替换并返回结果
/match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配;
也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,
match()就返回none\ /
- 分组
正则表达式中,用 () 来进行分组
group(1)表示正则表达式中第一个括号匹配到的内容
group(2)表示正则表达式中第二个括号匹配到的内容
依次类推…
- 匹配符号
- 转义符 \
\. :对.进行转义,使其意义就是.,而不是任意一个字符
\’:对 ’ 进行转义
r模式 :识别正则表达式中的所有 \ ,使其意义就是 \,而不是转义。
- 应用案例 结合mysql ----- 爬电影网站的影片下载地址
- 准备工作-------------------------------------------------------------------------------------------------
- 首先打开mysql服务
- 然后创建movie_db 数据库
- 然后进到movie_db 数据库中穿件 movie_link 数据表,字段为 id, film_name,film_link
- 可以去电影网站看格式,参考飘花电影网站的一个片种,----》飘花电影首页----》动作片
- 动作片的网址即为我们寻找的保存电影列表的网址,应用在我们第一个正则表达式匹配的内容,匹配出该页中所有电影名详情页。
import urllib.request # 这个模块是来打开网站并保存网站对象
import re
import pymysql # 连接mysql数据库模块def get_link(): # 获取电影名和电影地址web_obj=urllib.request.urlopen('https://www.piaohua.com/html/dongzuo/index.html')web_data=web_obj.read() # 读取网站中的所有源码web_text=web_data.decode() # 将源码编译download_list=re.findall('正则表达式1',web_text) # 正则表达式匹配网站源码中的电影列表for i,a,b in download_list: # 对列表进行遍历,取出每一个电影名对应的详情页name=a+b # 此为电影名称 download_page='网站首页'+i # 拼接出具体网址download_url_obj=urllib.request.urlopen(download_page)download_url_data=download_url_obj.read()download_url_text=download_url_data.decode()result = re.search(正则表达式2',download_url_text) # 用正则表达式匹配出该页中的下载连接film_dict[name]=result.group(1) # 以 字典名[电影名]=下载地址 来进行保存def name_distinct(name): # 对比数据库中已有的数据,防止重复插入sql='select id from movie_link where film_name=%s limit 1' # 查询操作,查询是否有相同的数据cur.execute(sql,name)if cur.fetchone():return Trueelse:return Falseif __name__ == '__main__':conn=pymysql.connect(host='127.0.0.1',user='root',password='mysql',database='movie_db')cur=conn.cursor()film_dict={} # 定义空字典保存电影名称和电影下载地址get_link()for name,link in film_dict.items():if name_distinct(name):print('已经有与之重复的资源')continuesql='insert into movie_link values (null,%s ,%s)'cur.execute(sql,[name,link]) # 插入操作,将电影名和下载地址保存到数据库中conn.commit() # 提交cur.close()conn.close()
python-16-正则表达式,简单爬虫,爬取电影网站连接到数据库相关推荐
- python爬取电影网站存储于数据库_Python零基础爬虫教程(实战案例爬取电影网站资源链接)...
前言 好像没法添加链接,文中的链接只能复制到浏览器查看了 这篇是我写在csdn的,那里代码格式支持更好,文章链接 https://blog.csdn.net/d497465762/article/de ...
- mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...
基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...
- python爬取电影网站存储于数据库_python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析...
字符串常用方法 # 去掉左右空格 'hello world'.strip() # 'hello world' # 按指定字符切割 'hello world'.split(' ') # ['hello' ...
- scrapy初步-简单静态爬虫(爬取电影天堂所有电影)
之前用java写过一个简单的爬取电影天堂信息的爬虫,后来发现用python写这种简单的爬虫程序更简单,异步网络框架在不使用多线程和多进程的情况下也能增加爬取的速度,目前刚开始学scrapy,用这个写了 ...
- python爬电影_使用Python多线程爬虫爬取电影天堂资源
最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...
- python爬电影天堂_python爬虫爬取电影天堂电影
python爬虫爬取电影天堂电影?本项目实现一个简单的爬虫,通过requests和BeautifulSoup爬取电影天堂电影信息,包括片名.年代.产地.类别.语言.海报链接和视频链接等内容.pytho ...
- 基于python,实现简单的爬取基金净值的爬虫
Python 基金爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python的requests和进程池实现了简单的基金数据爬取脚本: imp ...
- python网络爬虫_Python网络爬虫——爬取视频网站源视频!
原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...
- Python使用BeautifulSoup简单实现爬取妹子mm图片--初级篇
先来个效果截图(屈服在我的淫威之下吧!坏坏...嘿0.0) 因为是简易版而且是自己写着玩玩而已,自己也刚学,亦是笔记亦是分享,大佬轻喷就好.主要目的是希望更多人能够体验爬取一些seqing图片的 快乐 ...
最新文章
- laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image
- cocos2d-lua 搓牌效果_夏天这样洗澡才叫爽,用它搓一搓,脏东西都出来了
- xe5 android sample 中的 SimpleList 是怎样绑定的
- 如何在装有 macOS Monterey 的 Mac 上使用省电模式?
- Tensorflow学习笔记:使用线性回归进行简单分类
- 2022年(第八届)全国大学生统计建模大赛
- 模电——二级管的限幅与稳压
- AXD Debugger
- ffmpeg视频的翻转vflip、hflip,旋转rotate、transpose、
- android电视安全模式,电视安全模式怎么解除
- java调用dll 指针参数_java调用c dll,指针参数和结构体参数搞定 | 学步园
- Ubuntu20.04安装yum
- 网络聊天室(Java)
- 试图解释清楚【JavaScript Event Loop】
- FPGA实现CortexM3内核
- mysql一个字符占用多少个字节
- 下载GHOST重新安装系统,四个硬盘分区变成一个,如何恢复其他硬盘中的资料
- ArcGis系列-java发布GP分析结果(带样式)
- 使用ESXCLI将ESXi 6.5或6.7升级到ESXi 7.0
- Pybind11 的 CMakeList 说明