一 确定爬取网站

因为初学,所以按照网上的教程爬取豆瓣TOP250的网站。网址:
https://movie.douban.com/top250

二 编写爬虫程序

详细过程就不再一 一讲解,可以看代码中的注释

采用pyCharm变成软件创建的python工程,

from bs4 import BeautifulSoup  # 网页解析
import re  # 正则表达式
import urllib.request, urllib.error  # 制定url
import xlwt  # 进行excel操作
import sqlite3  # 进行SQLite数据库操作def main():baseurl = "https://movie.douban.com/top250?start="# 1 爬取网页datalist = getData(baseurl)# 3 保存数据savepath = ".\\豆瓣电影Top250.xls"saveData(datalist, savepath)# askURL(baseurl)# 创建正则表达式对象,表示规则(字符串的模式)
# 获取影片详情链接的规则 加r可以有转义字符
findLink = re.compile(r'<a href=(.*?)">')
# 获取影片图片链接的规则  re.S让换行符包含在字符串中
findImg = 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>')
# 获取影片评价人数
findPeople = 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):#  拼接字符串,强制转换str(i*25)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)# 保存一部电影的所有信息data = []# 强制转换item = str(item)# re库用来通过正则表达式查找指定的字符串# 获取影片详情的链接link = re.findall(findLink, item)[0]data.append(link)# print(link)# 获取影片图片的链接imgLink = re.findall(findImg, item)[0]data.append(imgLink)# 获取影片标题内容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)# 获取影片评价人数perpsoncount = re.findall(findPeople, item)[0]data.append(perpsoncount)# 获取影片概况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)# strip()去掉空格data.append(bd.strip())# print("影片详情链接" + link + "\t图片链接:" + imgLink + "\t标题:" + titles[#     0] + "\t评分:" + rating + "\t评价人数:" + perpsoncount + "\t影片概况:" + inq + "\t影片内容:" + bd)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/88.0.4324.104 Safari/537.36"}# 配置requestrequest = 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="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 j in range(0, 250):print("第%d条" % j)data = datalist[j]for k in range(0, 8):sheet.write(j+1, k, data[k])book.save('豆瓣Top250.xls')print("success")if __name__ == "__main__":# 调用函数main()

怎么引入模块可以自行查阅资料,简单的可以按ALT+ENTER键导入

三 运行程序,查看结果

右击run
运行成功结果如图

在同级目录下生成的Excel表格如下

至此 结束

python爬取豆瓣TOP250生成Excel表格例子最新相关推荐

  1. Python爬取豆瓣Top250电影可见资料并保存为excel形式

    Python爬取豆瓣Top250电影可见资料并保存为excel形式 利用requests第三方库实现网页的元素爬取,再使用openpyxl库进行信息的录入. 具体思路 1.分析网页的headers. ...

  2. Python爬取豆瓣Top250电影中2000年后上映的影片信息

    Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...

  3. python爬取豆瓣top250信息并存入数据库中 | sqlite3

    文章目录 代码: 遇到的问题: 1.关于数据库表格中出现:NBSP 2. 为什么HTML字段中会出现&NBSP? 3.java.io.IOException: 不能删除数据库文件 4. 关于d ...

  4. Python爬取豆瓣Top250电影排名

    # -*- codeing = utf-8 -*- # @Time: 2021/12/27 14:30 # @Author: 买欣怡 # @File: 7. spider-豆瓣.py # @Softw ...

  5. python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...

    最近看了一部电影<绣春刀>,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字.用jieba分词,对词语的出现频率进行统计,再通过wordcloud生 ...

  6. python爬取天眼查存入excel表格_爬虫案例1——爬取新乡一中官网2018届高考录取名单...

    有一种非常常见并且相对简单的网络爬虫,工作流程大概是这样的: 访问目标网页 提取目标网页内表格信息 写入excel文件并保存 初次实践,我决定尝试写一个这样的爬虫.经过一番构思,我准备把爬取新乡一中官 ...

  7. python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...

    导语 在前段时间看了杰昆菲尼克斯的小丑电影,心里很好奇大部分观众看完这部电影之后对此有什么评价,然后看了看豆瓣短评之后,觉得通过python把短评中出现最多的单词提取出来,做成一张词云,看看这部电影给 ...

  8. Python爬取豆瓣Top250的电影

    流程图如下: 爬取网页-解析网页-存储数据到Excel和数据库中 源代码如下: 如果被豆瓣封Ip(一般被封第二天就解封了),可以自己设置代理Ip,或者自己登录账号后将Cookie放到header中. ...

  9. python爬取豆瓣TOP250电影

    按照小甲鱼的爬虫教程,再自己修改了一部分. 废话不多说,直接贴代码 import requests from bs4 import BeautifulSoup import redef open_ur ...

最新文章

  1. MySQL数据库中创建表并给某个字段添加数据
  2. GPSInfoProvider定位
  3. 软件单元测试工具比较
  4. 转:MySQL索引原理及慢查询优化
  5. 那个软件弹出广告_如何关闭烦人的电脑弹窗广告?5种方法教你轻松解决
  6. python学哪个版本-老男孩python学习用的哪个版本?
  7. 聊聊我对黑客技术的思考
  8. nginx websocket proxy
  9. UML建模之EA入门
  10. 在Ext JS 6中添加本地化包
  11. 如何查找Fiori UI上某个字段对应的后台存储表的名称
  12. DPDK helloworld 源码阅读
  13. 全国计算机等级考试题库二级C操作题100套(第35套)
  14. vector的逆序输出(神奇的vector)
  15. 基于jsp+servlet的 新闻管理系统。
  16. html 漂浮 广告置顶,jquery浮动图片广告代码_页面上漂浮图片广告代码
  17. 传奇3服务器配置文件,分享传奇三架设的全部详细攻略
  18. Vulkan_多线程渲染
  19. matlab用牛顿差值计算三次差值多项式,计算方法用Newton插值多项式求函数的近似值.docx...
  20. [原创]如何获得SBO的数据表中文描述和数据表的中文字段

热门文章

  1. 安防监控那些知名品牌!
  2. 安智汽车ADAS量产故事:明年拿下5万套订单仅是保守预期
  3. 长沙SEO优化:SEO优化关键词如何进行研究和分析以及网站不同阶段的SEO优化排名策略
  4. windows server 2019 如何修改远程端口,亲测可用
  5. 【解释】Word2vec 词嵌入
  6. 基于 js 制作一个倒计时
  7. Silverlight MMORPG WebGame游戏设计(六)-----Server和Client的婚后协议[附上完整15M游戏DEMO]...
  8. NGS测序基础梳理02-簇生成(Cluster Generation)及flow cell介绍
  9. 对于创业者,是该设立个体?个人独资企业?还是企业?
  10. 19.Docker技术入门与实战 --- 安全防护与配置