python爬虫写入数据库_python爬虫--爬取某网站电影信息并写入mysql数据库

news/2024/5/9 18:41:24/文章来源:https://blog.csdn.net/weixin_39917576/article/details/109950371

书接上文,前文最后提到将爬取的电影信息写入数据库,以方便查看,今天就具体实现。

首先还是上代码:

#-*- coding:utf-8 -*-

importrequestsimportreimportmysql.connector#changepage用来产生不同页数的链接

defchangepage(url,total_page):

page_group= ['https://www.dygod.net/html/gndy/jddy/index.html']for i in range(2,total_page+1):

link= re.sub('jddy/index','jddy/index_'+str(i),url,re.S)

page_group.append(link)returnpage_group#pagelink用来产生页面内的视频链接页面

defpagelink(url):

base_url= 'https://www.dygod.net/html/gndy/jddy/'headers= {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}

req= requests.get(url , headers =headers)

req.encoding= 'gbk'#指定编码,否则会乱码

pat = re.compile('',re.S)#获取电影列表网址

reslist =re.findall(pat, req.text)

finalurl=[]for i in range(1,25):

xurl=reslist[i][0]

finalurl.append(base_url+xurl)return finalurl #返回该页面内所有的视频网页地址

#getdownurl获取页面的视频地址和信息

defgetdownurl(url):

headers= {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}

req= requests.get(url , headers =headers)

req.encoding= 'gbk'#指定编码,否则会乱码

pat= re.compile('ftp',re.S)#获取下载地址

reslist =re.findall(pat, req.text)

furl= 'ftp'+reslist[0]

pat2= re.compile('(.*?)',re.S)#获取影片信息

reslist2 =re.findall(pat2, req.text)

reslist3= re.sub('[

]','',reslist2[0])

fdetail= reslist3.split('◎')return(furl,fdetail)#创建表movies

defcreatetable(con,cs):#创建movies表,确定其表结构:

cs.execute('create table if not exists movies (film_addr varchar(1000), cover_pic varchar(1000), name varchar(100) primary key,\

ori_name varchar(100),prod_year varchar(100), prod_country varchar(100), category varchar(100), language varchar(100), \

subtitle varchar(100), release_date varchar(100), score varchar(100), file_format varchar(100), video_size varchar(100), \

file_size varchar(100), film_length varchar(100), director varchar(100), actors varchar(500), profile varchar(2000),capt_pic varchar(1000))')#提交事务:

con.commit()#将电影地址和简介插入表中

definserttable(con,cs,x,y):try:

cs.execute('insert into movies values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',\

(x,y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15],y[16],y[17]))except:pass

finally:

con.commit()if __name__ == "__main__":

html= "https://www.dygod.net/html/gndy/jddy/index.html"

print('你即将爬取的网站是:https://www.dygod.net/html/gndy/jddy/index.html')

pages= input('请输入需要爬取的页数:')

createtable

p1=changepage(html,int(pages))#打开数据库

conn = mysql.connector.connect(user='py', password='Unix_1234', database='py_test')

cursor=conn.cursor()

createtable(conn,cursor)#插入数据

j =0for p1i inp1 :

j= j + 1

print('正在爬取第%d页,网址是 %s ...'%(j,p1i))

p2=pagelink(p1i)for p2i inp2 :

p3,p4=getdownurl(p2i)if len(p3) ==0 :pass

else:

inserttable(conn,cursor,p3,p4)#关闭数据库

cursor.close()

conn.close()print('所有页面地址爬取完毕!')

用到的知识点和前面比,最重要是多了数据库的操作,下面简要介绍下python如何连接数据库。

一、python中使用mysql需要驱动,常用的有官方的mysql-connect-python,还有mysqldb(Python 2.x)和pymysql(Python 3.x),这几个模块既是驱动,又是工具,可以用来直接操作mysql数据库,也就是说它们是通过在Python中写sql语句来操作的,例如创建user表:

cursor.execute('create table user (id int, name varchar(20))')

#这里的create table语句就是典型的sql语句。

二、还有很多情况下我们用ORM(object relational mapping)即对象映射关系框架,将编程语言的对象模型和数据库的关系模型(RDBMS关系型数据库)进行映射,这样可以直接使用编程语言的对象模型操作数据库,而不是使用sql语言。同样创建user表:

user=Table('user',metadata,

Column('id',Integer),

Column('name', String(20))

)

metadata.create_all()

#这里可以看到根本没有sql语句的影子,这样我们可以专注在Python代码而不是sql代码上了。(注意ORM并不包含驱动,如要使用同样要安装前面提到的驱动)

如有兴趣可以自行学习,这不是本文的重点。为简单起见,文中用的是mysql-connect-python。

正则匹配部分也很简单,因为源网页比较规则,如下网页图和对应的源代码:

1341859-20180308170918319-487396369.png

1341859-20180308170949220-751261177.png

直接用◎匹配即可。

程序运行完后,数据都写入movies表中。

1341859-20180308170723067-1959496055.png

比如我想筛选豆瓣评分>7的,

1341859-20180308170812119-701364698.png

是不是很简单,你GET到了吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_827096.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站导航颜色停留_南京网站建设:忘记首页请专注于重要页面

重视主页,重视网页设计,然后立即投资是是网站设建设方面的老派思维。访客访问了您正在运行的网站,准备深入研究他们真正想要的信息。如果您不尽快提供高质量的内容,那么世界上所有引人注目的视觉效果都不会留住您的访客。访客并不…

excel教程自学网_超实用!良心推荐15个神级自学网站,内容全面质量又高

今天和大家分享一波内容比较全面的自学网站,希望你们能够喜欢。1. 哔哩哔哩现在的哔哩哔哩可不仅仅是番剧的天下,该网站现拥有各种类型的学习视频资源,什么PS、PR、AI、英语、日语、编程等等,太多了!真的是搜什么有什么…

企信下载的文件在哪里_在微软官方网站”满速”下载Windows10最新系统镜像方法...

你平时需要下载win10的原版系统镜像文件都会去哪里下载呢?微软官方、还是在"MSDN我告诉你"的第三方网站呢?相信很多的小伙伴都会在MSDN我告诉你这个网站下载,他里面提供了非常全面的win10官方的原版镜像。但它仅仅提供了ed2k链接一…

seo提交工具_呼伦贝尔网站建设_5118站长数据分析平台非常适合SEO站长做数据统计...

发布时间:2020-12-07 08:12:27标准站长需要哪些工具?我相信许多站长没有考虑过这个问题。我一直认为,找到一个数据非常大的工具非常适合我们的站长。几天前,朋友们推荐了一个新的站长工具。我认为它是未来站长的工具。1、5118站长工具分析数据…

一步步构建大型网站架构 转http://kb.cnblogs.com/page/99549/]

转 http://kb.cnblogs.com/page/99549/] 今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完…

plupload无法上传空文件_怎么用8uftp上传网站,怎么用8uftp上传网站具体的操作步骤?...

刚到公司的时候,接触到使用ftp工具进行文件的上传的任务,虽然与前端的关系不是很大但是任务下来了,也需要完成。就在网上搜了一下关于ftp的协议,以及上传的工具,最后就用8uftp的这个工具软件进行了上传。iis7服务器管理…

九度搜索引擎点击优化_企业公司网站为什么要做seo优化做公司企业官网

我们已经讲过了,那么企业和公司只是有官网还是不行的,如果没有进行很好的优化,那么企业官网的价值就没有完全的发挥出来。今天小编就来给大家讲解一下如何优化企业公司网站。1、成本低,SEO网站优化相对于SEM等推广方法来说&#x…

会所网站php源代码,anmo 按摩休闲会所网站模板,全套 包含近20个HTML 页面,web制作源码。 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...

文件名称: anmo下载收藏√ [5 4 3 2 1 ]开发工具: HTML文件大小: 4797 KB上传时间: 2013-12-27下载次数: 5提 供 者: 烟鸭掌儿详细说明:按摩休闲会所网站模板,全套模板,包含近20个HTML模板页面,web制作源码。-Massage Leisur…

php7opcache使用,PHP7开启OPcache加速代码执行效率提升网站访问速度

我们的网站访问速度是用户体念最重要的指标之一,网站内容再好打开速度过慢估计也是没有人愿意访问的。用wordpress企业主题搭建的网站常常有访问慢的问题,除了优化wordpress站内问题,服务器优化也是非常重要的。下面分享一个优化网站访问速度…

华为服务器如何设置网站dns,服务器如何设置dns地址

服务器如何设置dns地址 内容精选换一换活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。(Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows WeOBS Bro…

图片的alt对seo优化

2019独角兽企业重金招聘Python工程师标准>>> 如果在百度输入乐师傅,没有logo出来,应该是因为logo图片上面没有加alt 首先,如果你是说的图片的title,这个按道理来说对seo并没有什么影响。 但是,alt是这个图片…

成都PC网站建设需要考虑哪些费用呢

亿合科技PC建设小编分享下:成都PC网站建设需要考虑哪些费用呢?随互联网的发展,越来越多人想建设自己网站,站长最关心的问题之一就是网站建设需要多少钱。每个网站建设的费用都是不一样的,但是都需要涵盖几个方面的费用…

5+免费PPT模板下载网站(干货),亲测有效!(建议收藏)

5免费PPT模板下载网站(干货),亲测有效! 1、OfficePLUS.cn(访问点我) 微软官方的模板网站,包含PPT、Word、Excel等多种模板。 里面的所有模板支持免费下载,需要在下载之前进行QQ或…

网站建设技术方案_电商网站建设方案

今年的互联网电商增长速度更快了,越来越多商家,开始选择建设属于自己的电商平台。这时候,就需要一份完善的电商网站建设方案作为参考,电商平台网站建设公司遨游建站[1]小编已经为你准备好了!电商平台的建设定位电商网站…

j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录

为什么80%的码农都做不了架构师?>>> 《j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目》《j2ee 简单网站搭建:(二)添加和配置 spring spring-mvc 的…

创建自定义主机头的网站集

当我们在一个SharePoint Web应用程序中创建新网站集时,虽然我们可以指定网站集的路径,但是网站集的主机头,似乎必须使用Web应用程序所定义的主机头。比如,当在“http://sp2010”这个Web应用程序中创建一个新网站集时,网…

针对importNew 网站中的《面试总结》一文中涉及到的问题,自己的一点总结(1)

Java相关 Java GC机制(重要程度:★★★★★) 主要从三个方面回答:GC是针对什么对象进行回收(可达性分析法),什么时候开始GC(当新生代满了会进行Minor GC,升到老年代的对象大于老年代剩余空间时会进行Major GC),GC做什么(新生代采用复制算法…

stack overflow--技术问答网站

转自:http://baike.baidu.com/link?urleMR6Pwdk9IkauI5B3nZb2Yo3VUAcK6vQfrMpcSMPWqgH0ngqFkup3Gdr3t_s_yZe_UFwkR8c1pboaxhEuY-iwF_nGiUYHajEPMO6Y1kqWvT8aPz7a_T6t3a1vxyTccgKl_UIx1cU-6IP7qjre2ijtq Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在…

使用Python爬取大嘴巴巴网站

Anonymous驻中国办事处主任,私下搞了一个叫做“大嘴巴巴”的色*情网站。http://dazui88.com/ 这个网站烂的一逼,大家没事可以搞一搞它。今天我们试着爬取一下网站内容,回头交给网监姐。 1.首先我们观察大嘴巴巴最大的色请板块“轻松一刻”的U…

用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?

1. 用户访问网站的流程 用户访问网站的流程 用户在浏览器中输入 www.taobao.com 到显示页面的过程 1.1 访问流程 利用DNS协议进行域名解析 --> 建立tcp协议三次握手过程 --> 客户端发出访问网站相应页面请求(发出http协议请求报文) --…