爬虫实战爬取豆瓣电影Top250榜单电影

实战内容:直接上代码,重要地方有注释。

from bs4 import BeautifulSoup
import re
import urllib.request,urllib.error
import xlwt
import sqlite3
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)#让换行符包含在字符中 #影片图片链接
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):url =baseurl + str(i*25)html = askURL(url)#2.逐一解析soup = BeautifulSoup(html,"html.parser")for item in soup.find_all('div',class_="item"):#print(item)#测试查看电影item全部信息。data=[]item = str(item)link = re.findall(findlink,item)[0]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('')reting =re.findall(findRating,item)[0]data.append(reting)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("")bd = re.findall(findBd,item)[0]bd = re.sub('<br(\s+)?/>(\s+)?'," ",bd)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, likeGecko) Chrome / 84.0.4147.89Safari / 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):book = xlwt.Workbook(encoding="utf-8",style_compression=0)sheet = book.add_sheet('豆瓣电影TOP250',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+1))data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])book.save(savepath)if __name__== "__main__":main()

不说这么多,直接上结果。

喜欢的小伙伴可以收藏,代码可以直接复制在pycharm中运行,运行结果保存在Excle中。

爬虫实战爬取豆瓣电影Top250榜单电影相关推荐

  1. 使用scrapy再次爬取猫眼前100榜单电影!

    前提: 记得去年5月份左右的时候写过一篇使用Requests方法来爬取猫眼榜单电影的文章,今天偶然翻到了这篇文章,又恰巧最近在学scrapy框架进行爬虫,于是决定饶有兴趣的使用scrapy框架再次进行 ...

  2. 爬虫练习-爬取豆瓣音乐TOP250的数据

    前言: 爬取豆瓣音乐TOP250的数据,并将爬取的数据存储于MongoDB中 本文为整理代码,梳理思路,验证代码有效性--2020.1.1 环境: Python3(Anaconda3) PyCharm ...

  3. 爬虫实战-爬取豆瓣读书书籍信息

    1. 豆瓣读书书籍种类列表 在下面这个URL, 我们可以获得所有的种类链接 https://book.douban.com/tag/ 如下图: 可以通过bs4和re库进行筛选, 得到所有图书种类, 结 ...

  4. python网络爬虫-爬虫实战-(爬取网易云薛之谦歌单里歌曲并下载)

    1.导入要用到的库 #导入库 import requests from fake_useragent import UserAgent from lxml import etree import re ...

  5. python爬豆瓣top250书籍_python爬虫练习-爬取豆瓣图书top250

    个人自学,完整学习请访问以下链接 学习链接:https://study.163.com/course/courseMain.htm?courseId=1004714034 代码 # -*-coding ...

  6. Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影

    文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...

  7. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  8. python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250

    用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...

  9. python实现爬虫探探_全栈 - 9 实战 爬取豆瓣电影数据

    这是全栈数据工程师养成攻略系列教程的第九期:9 实战 爬取豆瓣电影数据. 掌握了爬虫的基本原理和代码实现,现在让我们通过实战项目巩固一下. 确定目标 在写爬虫之前应当想清楚:我需要哪方面的数据?需要包 ...

  10. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    一起学爬虫--通过爬取豆瓣电影top250学习requests库的使用 学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python req ...

最新文章

  1. 论文笔记 DNorm: disease name normalization with pairwise learning to rank
  2. 中石油训练赛 - Racing Gems(最长不下降子序列)
  3. kvm虚拟化_KVM 虚拟化环境搭建 - WebVirtMgr
  4. python cursor游标_第二十三天 python中游标的使用
  5. 各种水龙头拆卸图解_各种水龙头拆卸图解法
  6. Java2实用教程(第6版)实验指导与习题解答
  7. 后台管理系统 – 权限管理
  8. 计算机窗口闪退,最近电脑经常会有一个一闪而过的窗口,发现是CONSENT.EXE。请问这样正常吗?...
  9. 论文解读:《Deep-4mcw2v: 基于序列的预测器用于识别大肠桿菌中的 N4- 甲基胞嘧啶(4mC)位点》
  10. 自动化鼠标和键盘操作pyautogui
  11. 正则表达式之前瞻后顾
  12. 如何删除Word文档中表格最后一行多出的空白页
  13. 小程序开发问题之textarea层次问题
  14. 计算机辅助英语,计算机辅助英语教学
  15. 闭锁 java_Java并发编程之闭锁
  16. 【有限元分析】异型密封圈计算泄漏量与参数化优化过程(带分析源文件)
  17. 谁说我们会赚不会花?【IT人双十一购物攻略】
  18. flutter nfc
  19. win10无法登陆到你的账户
  20. 写一份文化干部培训方案

热门文章

  1. (HTML)浏览器将多个空格压缩为一个空格
  2. 从动物科学到乐队鼓手,腾讯技术小哥的开源人生
  3. 程序员需要掌握的单词
  4. Android 二维码的扫码功能实现(一)
  5. linux curl证书错误,curl – SSL证书错误
  6. android 手机 报证书错误,Android设备中的SSL证书错误
  7. Xaml技术:浅析为什么说一个标签就是new一个对象?
  8. Python3 flags
  9. Java实例项目之投票统计(可拓展衍生)
  10. 相对路径遍历Relative Path Traversal