爬虫

网络爬虫:
网络爬虫是按照一定规则,自动抓取互联网信息的程序或者脚本。由于
互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页
并分析成为目前主流的爬取策略本质:
模拟浏览器打开网页,获取网页中我们想要的部分数据编码规范:
一般python第一行需要加入
# -*-conding:utf-8 -*-或者 # coding=utf-8python文件中可以加入main函数用于测试程序
if __name__ == "__main__":

爬取豆瓣Top250并存储Excel

# -*- codeing = utf-8 -*-
# @Time : 2021/11/16 16:08
# @File : spider.py
# @Software: PyCharmfrom 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='# 爬取网页datalist = getData(baseurl)savepath = '豆瓣电影top250.xls'# 保存数据# saveData(datalist,savepath)# 影片详情链接的规则
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):   # 调用获取页面信息的函数十次url = baseurl + str(i*25)html = askURL(url)  # 保存获取到的网页源码# 解析数据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] # 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) #添加评分jugedNum = re.findall(findJudge,item)[0]data.append(jugedNum)   # 添加评价人数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) # 去除brbd = re.sub('/',' ',bd) # 替换/data.append(bd.strip()) # 去掉前后空格datalist.append(data)   # 把处理好的一部电影信息放入datalistreturn datalist#得到指定一个URL的网页内容
def askURL(url):head = {    # 模拟浏览器头部信息,向豆瓣服务器发送消息"User-Agent":" Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 91.0.4472.124Safari / 537.36"}   # 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器,浏览器(本质是高速浏览器,我们可以接收什么文件内容)request = urllib.request.Request(url,headers=head)html = ""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")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 i in range(0,250):print(f'第{i+1}条')data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])  # 数据book.save('豆瓣数据.xls')   # 保存if __name__ == "__main__":main()print('爬取完毕')

爬取豆瓣Top250并存储Excel相关推荐

  1. Python 爬取周杰伦歌曲信息,爬取豆瓣top250的电影,并保存至excel中

    使用requests.BeautifulSoup模块,在网上爬取信息.有的网页可以直接爬取到,有些则需要分步加载,这时就需要使用network进行分析找到信息对应的请求. 有的会反爬虫,则需要添加he ...

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

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

  3. python爬取豆瓣TOP250生成Excel表格例子最新

    一 确定爬取网站 因为初学,所以按照网上的教程爬取豆瓣TOP250的网站.网址: https://movie.douban.com/top250 二 编写爬虫程序 详细过程就不再一 一讲解,可以看代码 ...

  4. 【爬虫】案例(爬取豆瓣top250)[完整+详细]

    文章目录 1.需求 2.流程 3.实现 导包 主函数 数据获取 数据解析 存储到excel 简易数据库 存储到数据库 5.完整代码 6.小注 1.需求 爬取豆瓣top250的电影的播放链接,封面链接, ...

  5. 爬取豆瓣Top250电影

    爬取豆瓣Top250电影数据一直是爬虫小白的入门练手项目,下面就来分享一下自己的爬取过程. 开始之前,先简单写一下需求和实现思路. 需求: 爬取豆瓣电影Top250的数据,数据包含排名.电影名称.导演 ...

  6. 爬取豆瓣Top250数据并且可视化

    爬取豆瓣Top250数据并且数据可视化 话不多说,直接上代码 爬虫代码展示 -*- codeing = utf-8 -*- from bs4 import BeautifulSoup # 网页解析,获 ...

  7. scrapy爬取豆瓣top250电影数据

    scrapy爬取豆瓣top250电影数据 scrapy框架 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. sc ...

  8. 【实战1】用BeatuifulSoup解析器爬取豆瓣Top250电影的名称

    [实战1]用BeatuifulSoup解析器爬取豆瓣Top250电影的名称 一. 爬虫的普遍步骤 二. 项目目标分析 三.完整爬取代码 参考链接: https://www.bilibili.com/v ...

  9. 爬取豆瓣TOP250电影的评分、评价人数、短评等信息,并在其保存在sql数据库中。

    爬取目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在sql数据库中. 最终实现效果如图: 确定爬取的URL 爬取的网页地址为:https://movie.douban.com/ ...

  10. 爬取豆瓣TOP250

    第一课<爬取豆瓣TOP250> 1.准备工作 2.开始爬取网页 (1)分析网页 (2)用for循环表示这个分析结果 (3)用page函数表示这10页的url链接 3.正式爬取网页 (1)请 ...

最新文章

  1. JWT 入坑爬坑指南
  2. go 获得 mysql 实际运行 SQL,Golang实践录:一个数据库迁移的代码记录
  3. @Configuration 和 @Bean
  4. java jsch 密钥登陆_我们可以使用JSch进行基于SSH密钥的通信吗?
  5. 经常使用的webservice接口
  6. Luogu P1197 [JSOI2008]星球大战
  7. overleaf入门
  8. There is no Action mapped for namespace / and action name accredit.
  9. centos7下给bond网卡配置bridge桥接
  10. 算法正在统治世界——每个程序员都应该收藏的算法复杂度速查表
  11. Android Studio 中集成 ASSIMP
  12. 磕碰,擦伤了,紧急处理方法
  13. matlab 曲线数据输出,Mathlab 如何输出曲线各数据点值?
  14. 大一python基础编程试卷_大学moocPython编程基础答案
  15. 计算机基础知识学习第七课,7、新建文件夹--电脑基础知识
  16. 2017 沪牌中标后流程
  17. linux 查看空间
  18. ubuntu16.04 离线deb包 安装vim 离线环境
  19. 利用系统方法分析COBIT5解决问题的原理
  20. 渐变折射率(GRIN)镜头的建模

热门文章

  1. 用计算机如何算瓷砖菱形加工,瓷砖菱形铺贴怎么计算面积
  2. 国考计算机怎么评分标准,国考行测的评分标准
  3. 关于jxls2.6.0的学习以及遇到的问题(八)
  4. facade java_Java中的Facade模式
  5. 【Linux设备驱动】如何挂载和卸载驱动 lsmod insmod rmmod和modprobe
  6. 拓扑排序算法分析(通俗易懂)
  7. linux 安装Elasticsearch
  8. 【已解决】ipa降级教学 苹果旧版APP下载
  9. cesium添加动态扩散圆,动态圆环
  10. Win10易升下载链接