1.存入Excel表格的代码:

from bs4 import BeautifulSoup #网页解析,获取数据
import re  #正则表达式,进行文字匹配
import urllib.request,urllib.error,urllib.parse  #制定URL,获取网页数据
import xlwt  #进行excel操作
import sqlite3 #进行SQLLite数据库操作def main():baseurl="https://movie.douban.com/top250?start="#1.爬取网页datalist=getData(baseurl)savepath="豆瓣电影Top250.xls"#3.保存数据saveData(datalist,savepath)askURL("https://movie.douban.com/top250?start=")
#影片详情链接的规则
findLink = re.compile(r'<a href="(.*?)">')  #创建正则表达式,表示规则(字符串的模式)
#影片图片
findImgSrc = re.compile(r'<img.*src="(.*?)"',re.S)#re.S让换行符出现在字符中
#影片片名
findTitle = re.compile(r'<span class="title">(.*)</span>')
#影片评分
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
#观看人数
findJudge = re.compile(r'<span>(\d*)人评价</span>')
#找到概况
findInq = re.compile(r'<span class="inq">(.*)</span>')#找到影片的相关内容
findBd = re.compile(r'<p class="">(.*?)</p>',re.S)#爬取网页
def getData(baseurl):datalist=[]for i in range(0,10):   #调用获取页面信息的函数 10次url =baseurl + str(i*25)html = askURL(url)#2.逐一解析数据soup =BeautifulSoup(html,"html.parser")#形成树形结构for item in soup.find_all('div',class_="item"): #查找符合要求的字符串,形成列表data = [] #保存一部电影的所有信息item = str(item)#link获取到影片详情link = re.findall(findLink,item)[0]   #re库用来通过正则表达式查找指定的字符串data.append(link)imgSrc = re.findall(findImgSrc,item)[0]data.append(imgSrc)#添加图片titles = re.findall(findTitle,item) #if(len(titles) == 2):ctitle = titles[0]              #添加中文名data.append(ctitle)otitle = titles[1].replace("/","")      #添加外国名data.append(otitle)else:data.append(titles[0])data.append(' ')#外国名留空rating = re.findall(findRating,item)[0]data.append(rating)#添加评分judgeNum = re.findall(findJudge,item)[0]data.append(judgeNum)#添加评价人数inq = re.findall(findInq,item)if len(inq) != 0:inq = inq[0].replace("。","")    #去掉句号data.append(inq)#添加概述else:data.append(" ")        #留空# data.append(inq)bd = re.findall(findBd,item)[0]bd = re.sub('<br(\s+)?/>(\s+)?',"",bd)       #去掉<br/>bd = re.sub('/'," ",bd)         #替换data.append(bd.strip())             #去掉前后空格datalist.append(data) #处理好的一部电影信息print(datalist)return datalist
#得到指定一个URL的网页内容
def askURL(url):head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"}request = urllib.request.Request(url,headers=head)html=""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")# print(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return html#保存数据
def saveData(datalist,savepath):print("save,,,,")book = xlwt.Workbook(encoding="uft-8",style_compression=0)  # 创建workbook对象sheet = book.add_sheet("sheet1",cell_overwrite_ok=True)  # 创建工作表col = ("电影详情连接","图片链接","影片中文名","影片外国名","评分","评价人数","概况","相关信息")for i in range(0,8):sheet.write(0,i,col[i]) #列名for i in range(0,250):print("第%d条"%i)data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])   #数据book.save(savepath)  # 保存数据表if __name__ == "__main__": #当程序执行时main()print("爬取完毕")

最终结果(excel表格):

2.利用sqlite数据库进行存取

sqlite数据库连接的常用语句

import sqlite3#建立数据库
conn = sqlite3.connect("test.db")  #打开或创建数据库文件
print("Opened database successfully")
c = conn.cursor()       #获取游标sql = '''需要填写的SQL语句'''c.execute(sql)     #执行SQL语句
conn.commit()      #提交数据库操作
conn.close()       #关闭数据库
from bs4 import BeautifulSoup #网页解析,获取数据
import re  #正则表达式,进行文字匹配
import urllib.request,urllib.error,urllib.parse  #制定URL,获取网页数据
import xlwt  #进行excel操作
import sqlite3 #进行SQLLite数据库操作def main():baseurl="https://movie.douban.com/top250?start="#1.爬取网页datalist=getData(baseurl)#设置保存路径 dbpath为保存到sqlite中,savepath保存到Excel表格dbpath ="moive.db"#savepath="豆瓣电影Top250.xls"#3.保存数据  saveData(datalist,savepath)保存到Excel表格,#saveData(datalist,savepath)saveData2(datalist,dbpath)askURL("https://movie.douban.com/top250?start=")
#影片详情链接的规则
findLink = re.compile(r'<a href="(.*?)">')  #创建正则表达式,表示规则(字符串的模式)
#影片图片
findImgSrc = re.compile(r'<img.*src="(.*?)"',re.S)#re.S让换行符出现在字符中
#影片片名
findTitle = re.compile(r'<span class="title">(.*)</span>')
#影片评分
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
#观看人数
findJudge = re.compile(r'<span>(\d*)人评价</span>')
#找到概况
findInq = re.compile(r'<span class="inq">(.*)</span>')#找到影片的相关内容
findBd = re.compile(r'<p class="">(.*?)</p>',re.S)#爬取网页
def getData(baseurl):datalist=[]for i in range(0,10):   #调用获取页面信息的函数 10次url =baseurl + str(i*25)html = askURL(url)#2.逐一解析数据soup =BeautifulSoup(html,"html.parser")#形成树形结构for item in soup.find_all('div',class_="item"): #查找符合要求的字符串,形成列表data = [] #保存一部电影的所有信息item = str(item)#link获取到影片详情link = re.findall(findLink,item)[0]   #re库用来通过正则表达式查找指定的字符串data.append(link)imgSrc = re.findall(findImgSrc,item)[0]data.append(imgSrc)#添加图片titles = re.findall(findTitle,item) #if(len(titles) == 2):ctitle = titles[0]              #添加中文名data.append(ctitle)otitle = titles[1].replace("/","")      #添加外国名data.append(otitle)else:data.append(titles[0])data.append(' ')#外国名留空rating = re.findall(findRating,item)[0]data.append(rating)#添加评分judgeNum = re.findall(findJudge,item)[0]data.append(judgeNum)#添加评价人数inq = re.findall(findInq,item)if len(inq) != 0:inq = inq[0].replace("。","")    #去掉句号data.append(inq)#添加概述else:data.append(" ")        #留空# data.append(inq)bd = re.findall(findBd,item)[0]bd = re.sub('<br(\s+)?/>(\s+)?',"",bd)       #去掉<br/>bd = re.sub('/'," ",bd)         #替换data.append(bd.strip())             #去掉前后空格datalist.append(data) #处理好的一部电影信息#print(datalist) #打印保存的数据return datalist
#得到指定一个URL的网页内容
def askURL(url):head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"}request = urllib.request.Request(url,headers=head)html=""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")# print(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return html#保存数据
def saveData(datalist,savepath):print("save,,,,")book = xlwt.Workbook(encoding="uft-8",style_compression=0)  # 创建workbook对象sheet = book.add_sheet("sheet1",cell_overwrite_ok=True)  # 创建工作表col = ("电影详情连接","图片链接","影片中文名","影片外国名","评分","评价人数","概况","相关信息")for i in range(0,8):sheet.write(0,i,col[i]) #列名for i in range(0,250):print("第%d条"%i)data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])   #数据book.save(savepath)  # 保存数据表def saveData2(datalist,dbpath):init_db(dbpath)conn = sqlite3.connect(dbpath)cur = conn.cursor()for data in datalist:for index in range(len(data)):if index == 4 or index == 5:continuedata[index] = '"'+data[index]+'"'sql = '''insert into movie250(info_link,pic_link,cname,ename,sorce,rated,instroduction,info)values(%s)'''%",".join(data)print(sql)cur.execute(sql)conn.commit()cur.close()conn.close()print("....")def init_db(dbpath):sql = '''create table movie250(id integer primary key autoincrement,info_link text,pic_link text,cname varchar,ename varchar,sorce numeric,rated numeric,instroduction text,info text)''' #创建数据表conn = sqlite3.connect(dbpath)#打开或创建数据库文件cursor = conn.cursor()cursor.execute(sql)conn.commit()conn.close()if __name__ == "__main__": #当程序执行时main()print("爬取完毕")

运行结果:

对豆瓣进行爬虫来获取相关数据(分别保存到Excel表格和sqlite中)相关推荐

  1. 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...

    怎样将MATLAB中的数据输出到excel中 数据保存到excel文件 xlswrite(xlsfile, data, sheet, range); % sheet 和 range可以不指定 如: x ...

  2. 【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格

    使用Python获取"豆瓣电影"相关数据,并生成Excel表格 本文使用了requests和pandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内.但发现存在 ...

  3. Python爬虫鲁迅先生《经典语录》保存到Excel表格(附源码)

    Python爬虫鲁迅先生<经典语录>保存到Excel表格(附源码) 前言 今天用Python 爬取鲁迅先生<经典语录>,直接开整~ 代码运行效果展示 开发工具 Python版本 ...

  4. Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中

    Crawler:Python爬取14年所有的福彩信息,利用requests库和BeautifulSoup模块来抓取中彩网页福彩3D相关的信息,并将其保存到Excel表格中 目录 输出结果 核心代码 输 ...

  5. python提取pdf表格数据并保存到excel中

    pdfplumber操作pdf文件 python开源库pdfplumber,可以较为方便地获取pdf的各种信息,包含pdf的基本信息(作者.创建时间.修改时间-)及表格.文本.图片等信息,基本可以满足 ...

  6. python提取txt数据到excel_python 读取txt中每行数据,并且保存到excel中的实例

    使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释. 代码简单,具体代码如下: # coding=utf-8 ''' main function:主要实现把txt中的每行数 ...

  7. python逐行读取txt写入excel_python 读取txt中每行数据,并且保存到excel中的实例

    使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释. 代码简单,具体代码如下: # coding=utf-8 ''' main function:主要实现把txt中的每行数 ...

  8. MATLAB 数据自动保存到Excel操作

    MATLAB 数据自动保存到Excel操作 欢迎学习交流! 邮箱: z-@1-6.com 网站: https://zephyrhours.github.io/ 在实验中,有时候将每次实验计算的结果一一 ...

  9. 将爬取的数据保存到Excel表格

    第一步.导入模块 import xlwt # 导入写入excel需要的包 第二步.定义函数,将爬取好的数据保存到excel文件中,下面以保存python的关键词为例,介绍详细流程. def write ...

最新文章

  1. java.io.IOException: No FileSystem for scheme: hdfs
  2. VRRP与VLAN实验(HuaWei)
  3. 影响软件测试未来的5件事 (译)
  4. asp.net 中文编码问题
  5. c4d fbx大小_C4D设计人员必备的八大外挂神器,爱了爱了!【133期】
  6. Java小白进阶笔记(2)-变量和数据类型
  7. 高品质平板电脑模型为您的作品演示加分
  8. http://book.ifeng.com/lianzai/detail_2011_05/08/6243572_37.shtml
  9. 鱼C论坛_VIP二号光盘
  10. Html5-audio标签简介及手机端不自动播放问题
  11. Google Code的简单使用
  12. 转 C++异常机制的实现方式和开销分析 白杨 http://baiy.cn
  13. AI玩游戏系列,机器学习玩游戏(1) 一维游戏
  14. 记录一次China GT比赛历程
  15. 荣耀笔记本pro linux版本,荣耀MagicBook Pro锐龙版发布:首发锐龙7 3750H、还有Linux版...
  16. 4g全网通SMD贴片内置天线怎么选择?
  17. Coinversation 的选择!一文了解 Polkadot 生态中的智能合约
  18. 小天才z6官方禁用怎么关闭_我告诉你小天才z6隐藏功能
  19. Linux—系统关机命令详解
  20. 人工蜂群算法(ABC算法)Java实现

热门文章

  1. 计算机应用辅导大纲及真题
  2. CF922D Robot Vacuum Cleaner 贪心+排序
  3. Redis未授权访问漏洞的重现与利用
  4. 太有才了!创新的街头涂鸦手绘欣赏【中篇】
  5. 主元素问题—蒙特卡罗算法
  6. 股份公司发起人股东能否进行变更
  7. 【信息系统项目管理师】信息系统项目组织结构之职能型、矩阵型和项目型详解(三张图完整说明)
  8. pip安装OpenCV2
  9. 游承超:手机贴膜,你真的选对了吗?(31P)
  10. 肿瘤NGS测序公司生信工程师水平划分