资源简介
爬取豆瓣电影排名程序,包含非常详细的注释,基本每句程序都有,最后保存到EXCEL表中,分为两个文件夹,一个是库函数文件,一个是主函数文件,最后还有一个已爬取成功的EXCEL表。
代码片段和文件信息
# coding = utf-8
# 上行代码是为了在编写程序中可以打入中文汉字
import requests # 引入系统或者第三方的模块
import sys
import re # 正则表达式
from bs4 import BeautifulSoup # 网页解析,获取数据,进行文字匹配,其实引用的是bs4里边一个模块
import urllib # 制定URL,获取网页数据
import xlwt # 进行excel操作
import sqlite3 # 进行SQL数据库操作
import urllib.request
def main():
# 爬取网页,需要一个基本的URL
baseurl = ‘https://movie.douban.com/top250?start=0‘
datalist = getdata(baseurl)
savepath = “豆瓣电影TOP250.xls“ # 定义保存路径在豆字前边不加.\\则表示保存在当前路径下
savedata(datalistsavepath) # 调用保存数据函数把datalist数据保存到savepath路径下
findlink = re.compile(r‘‘) # 创建正则表达式对象,表示规则(字符串的模式)点号代表有一个字符,星号代表有无数个字符,问号代表这样的字符串出现0次到1次,字母r在这里表示对字符串中的特殊字符不做解析处理
filmname = re.compile(r‘tle“>(.*)‘) # 创建正则表达式对象,影片的名字,其中r后边的span class 是查看网页上按f12查看网页源代码,发现电影名字两边代码是这个。
def getdata(baseurl): # 获取数据,在括号内给该函数一个路径。
“““爬取网页操作函数“““
datalist = [] # 先定义列表
for i in range(010): # 因为要爬取10页的内容,所有askurl要使用10次
url = baseurl + str(i*25) # 每次要爬取的网页地址更新,每页有25条电影排行,所有乘以25,
html = askurl(url) # 调用每次更新后的网址,获取一页的html
solvedata = BeautifulSoup(html“html.parser“) # 逐一解析数据,要在for循环里,因为没爬取一个网页都要解析一次解析器是html.parser,解析对象是html
for item in solvedata.find_all(‘div‘class_=“item“): # 在解析后的数据solvedata里找到符合要求的字符
data = [] # 保存一部电影的所有信息
item = str(item) # 把提取到的数据强制转换为字符串,方便后续处理
link = re.findall(findlinkitem)[0] # re库用来通过正则表达式 查找指定的字符串,中括号0表示只找第一个符合的字符串就可,findlink已在前边做了全局变量,为指定字符串的规则模式
data.append(link) # 前边定义了一个data空字典,此处使用append把查取到的电影连接追加进data字典中去
name = re.findall(filmnameitem)[0] # 查找到的电影名字给变量name因为该句程序是在已经找到的div,class=item标签数据中再次查找,所以此处中括号0表示是在一个div.class下的第一个符合的字符串
data.append(name) # 前边定义了一个data空字典,此处使用append把查取到的电影名字追加进data字典中去
datalist.append(data) # 把处理好的电影信息保存在data字典后,在追加到datalist中
return datalist # 返回一个数据列表,把网址里边的数据都给返回回来
def askurl(url): # 得到指定一个url 的网页内容
head = {“User-Agent“:“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3823.400 QQBrowser/10.6.4302.400“} # 指定一个头部信息
# 在网页中按F12,可以查到User-agent
request = urllib.request.Request(urlheaders=head) # 把传递数据的对象,和头部信息封装起来到request中
html = ““
try:
response = urllib.request.urlopen(request) # 发出请求了,返回一个response对象,这个对象里边有我们整个网页的信息
html = response.read().decode(“utf-8“) # 网页的信息读取出来,并decode进行解码
except urllib.error.URLError as e: # 整个try 和except是对该爬取网页程序做一个打包,如果爬取失败出现error,就打印输出相关的错误提示代码和错误原因
if hasattr(e“code“):
print(e.code)
if hasattr(e“reason“):
print(e.reason)
return html # 函数执行完,返回一个html,然后与getdata函数里的html = askurl(url),对获取的网页内容更新一次
def savedata(datalistsavepath): # 括号内是保存路径
“““保存数据函数“““
ExcelFile = xlwt.Workbook(encoding=“utf-8“)
ExcelBiao = ExcelFile.add_sheet(‘豆瓣电影TOP250‘)
MeiLieName = (“电影链接““电影名字“)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-12-15 22:55 pa_chong\
目录 0 2020-12-15 22:58 pa_chong\.idea\
文件 50 2020-12-10 21:23 pa_chong\.idea\.gitignore
文件 5 2020-12-15 22:55 pa_chong\.idea\.name
目录 0 2020-12-10 21:23 pa_chong\.idea\inspectionProfiles\
文件 174 2020-12-10 21:23 pa_chong\.idea\inspectionProfiles\profiles_settings.xm
文件 727 2020-12-10 21:23 pa_chong\.idea\inspectionProfiles\Project_Default.xm
文件 188 2020-12-10 21:23 pa_chong\.idea\misc.xm
文件 275 2020-12-10 21:23 pa_chong\.idea\modules.xm
文件 291 2020-12-10 21:23 pa_chong\.idea\pa_chong.iml
文件 8178 2020-12-15 22:58 pa_chong\.idea\workspace.xm
目录 0 2020-12-15 22:51 pa_chong\ku_han_shu\
文件 5358 2020-12-15 22:51 pa_chong\ku_han_shu\p1.py
目录 0 2020-12-15 22:42 pa_chong\ku_han_shu\__pycache__\
文件 2168 2020-12-15 22:42 pa_chong\ku_han_shu\__pycache__\p1.cpython-38.pyc
目录 0 2020-12-15 22:55 pa_chong\zhu_wen_jian\
文件 634 2020-12-15 22:46 pa_chong\zhu_wen_jian\pa.py
文件 55296 2020-12-15 22:54 pa_chong\豆瓣电影TOP250.xls
相关资源
- Web Scraper 爬虫 网页抓取 Chrome插件
- 中文维基百科语料库百度网盘网址.
- MSCNN_dehaze.rar
- 爬取豆瓣排行榜电影数据(含GUI界面
- 字典文本资源
- 爬取新浪微博上的妹纸照片的爬虫程
- 中国行政区划到村总.txt
- Brainfuck / OoK 解码脚本
- 案例实战信用卡欺诈检测数据集
- Lucene(搜索)Demo
- 招商策略_抱团启示录那些年我们一起
- 机械主题爬虫的设计与实现
- sip-4.19.zip
- 树莓派3b+学习使用教程
- 模拟登录一些常见的网站
- numpy 中文学习手册
- NBA数据爬虫
- Chrome插件-XPath Helper 完成Bing每日壁纸
- 读秀包库全文器.zip
- pytorch-1.4.0-py3.7_cpu_0.tar.bz2
- 机器学习实战 高清完整版PDF
- 泰坦尼克号0.81准确率实验报告.docx
-
abaqus sc
ripting reference manual.pdf - 网页版聊天程序--网络程序设计课程大
- Give Me Some Credit
-
ba
semap安装出错时,正确得pyproj文件 - 微信头像拼接工具
- 统计思维:程序员数学之概率统计第
- 微博图片爬虫exe
- 基于open cv的人脸识别
评论
共有 条评论