环球看点!通过模仿学会Python爬虫(一):零基础上手

2023-06-18 05:58:08 来源: 博客园

好家伙,爬虫来了

爬虫,这玩意,不会怎么办,

诶,先抄一份作业回来

1.别人的爬虫

Python爬虫史上超详细讲解(零基础入门,老年人都看的懂)_ChenBinBini的博客-CSDN博客

# -*- codeing = utf-8 -*-from bs4 import BeautifulSoup  # 网页解析,获取数据import re  # 正则表达式,进行文字匹配`import urllib.request, urllib.error  # 制定URL,获取网页数据import xlwt  # 进行excel操作#import sqlite3  # 进行SQLite数据库操作findLink = re.compile(r"")  # 创建正则表达式对象,标售规则   影片详情链接的规则findImgSrc = re.compile(r"(.*)")findRating = re.compile(r"(.*)")findJudge = re.compile(r"(\d*)人评价")findInq = re.compile(r"(.*)")findBd = re.compile(r"

(.*?)

", re.S)def main(): baseurl = "https://movie.douban.com/top250?start=" #要爬取的网页链接 # 1.爬取网页 datalist = getData(baseurl) savepath = "豆瓣电影Top250.xls" #当前目录新建XLS,存储进去 # dbpath = "movie.db" #当前目录新建数据库,存储进去 # 3.保存数据 saveData(datalist,savepath) #2种存储方式可以只选择一种 # saveData2DB(datalist,dbpath)# 爬取网页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 = 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(" ") 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(" ") bd = re.findall(findBd, item)[0] bd = re.sub("(\s+)?", "", bd) bd = re.sub("/", "", bd) data.append(bd.strip()) datalist.append(data) 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.122 Safari / 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) #创建workbook对象 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() # init_db("movietest.db") print("爬取完毕!")

卧槽,有点东西

这东西看上去挺nb啊,

也很方便,把我想要的一些数据直接总结到一个excel表格中了

我们来看看这些字段是如何匹配的

.xls

代码:

findLink = re.compile(r"")  # 创建正则表达式对象,标售规则   影片详情链接的规则findImgSrc = re.compile(r"(.*)")findRating = re.compile(r"(.*)")findJudge = re.compile(r"(\d*)人评价")findInq = re.compile(r"(.*)")findBd = re.compile(r"

(.*?)

", re.S)

?? 这不就专业对口了吗

网站的html:

将三个"表"都打开,再来看看对比

(诶都对上了)

此处,使用正则表达式去匹配对应标签

正则表达式 – 简介 | 菜鸟教程 (runoob.com)

于是看了这个案例之后,我们就可以大概去分析以下爬虫到底干了什么:

1.发请求,随后拿到服务器发过来的.html文件

2.用正则表达式去套对应的,我们需要的数据

3.处理数据,最后把他们以某种方式呈现

具体来说,爬虫通常会执行以下步骤:

  1. 发送HTTP请求:爬虫通过发送HTTP请求来获取目标网页的内容。

  2. 解析HTML页面:网页内容一般是HTML格式的,爬虫需要使用HTML解析器来将页面内容解析成Python对象。

  3. 提取数据:通过Python编程语言对解析出来的对象进行遍历和操作,找到需要的数据并保存下来。

  4. 存储数据:将提取的数据保存到文件中、数据库中或者内存中,以备后续的处理和分析。

  5. 处理异常:爬虫需要处理异常,例如:请求超时、解析错误等,以确保爬虫的稳定性和可靠性。

开干

2.我的爬虫

好了,我们自己写一个爬虫试试

import requestsfrom bs4 import BeautifulSoupimport xlwtimport re# 创建Excel文件workbook = xlwt.Workbook(encoding="utf-8")worksheet = workbook.add_sheet("kugou_rank")# pattern = re.compile(r"(?<=- ).*")# 构造请求头headers = {    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}# 定义排行榜页面的URLurl = "https://www.kugou.com/yy/rank/home/1-6666.html?from=rank"# 发送请求并获取响应r = requests.get(url, headers=headers)# 解析HTMLsoup = BeautifulSoup(r.text, "html.parser")# 定位歌曲排行榜列表song_list = soup.find("div", {"class": "pc_temp_songlist"}).find_all("li")# 将数据写入Excel文件worksheet.write(0, 0, "排名") #写入对应的字段worksheet.write(0, 1, "歌名")worksheet.write(0, 2, "歌手")worksheet.write(0, 3, "专辑")worksheet.write(0, 4, "播放时长")worksheet.write(0, 5, "链接地址")row = 1for song in song_list:    song_name = song.find("a", {"class": "pc_temp_songname"}).text.strip()     #筛选出歌名     song_title = song.get("title")    singer_pattern = re.compile(r".*(?= - )")    song_singer = singer_pattern.findall(song_title)    song_title = song.get("title")    print(song_title)    album_pattern = re.compile(r"(?<=- ).*")    song_album = album_pattern.findall(song_title)    # song_album = pattern.findall(song)    song_time = song.find("span", {"class": "pc_temp_time"}).text.strip()    link_pattern = re.compile(r"href="(.*?)"")    worksheet.write(row, 0, song["data-index"]) #将排行写入excel表格    worksheet.write(row, 1, song_name)          #将歌名写入excel表格    worksheet.write(row, 2, song_singer)        #将歌手写入excel表格    worksheet.write(row, 3, song_album)         #将歌曲专辑写入excel表格    worksheet.write(row, 4, song_time)          #将歌曲时长写入excel表格    song =str(song)    song = song.split("javascript:")[0]    song_link = link_pattern.findall(song)    worksheet.write(row, 5, song_link)          #将歌曲时长写入excel表格    row += 1# 保存Excel文件workbook.save("C:/Users/10722/Desktop/python答辩/kugou_rank.xls")

说明:

# 构造请求头headers = {    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}

带着请求头去请求,一个简单的"反爬"机制,模仿浏览器去发请求,非常实用

(其实没什么乱用,你能想到的,网站的开发者大概也能想到,所以你要是乱来还是会封你IP的)

没什么难度

这爬了酷狗的一个音乐榜单

然后记录了一些音乐数据,还有歌曲的地址。

还行,

标签:

环球看点!通过模仿学会Python爬虫(一):零基础上手

好家伙,爬虫来了爬虫,这玩意,不会怎么办,诶,先抄一份作业回来1 别

06-18 05:58:08

每日看点!桑拿房家用什么品牌好_桑拿房家用

1、家用桑拿房的价格一般是12000元左右。2、购家用桑拿房之家用桑拿房

06-18 04:55:48

天天快消息!swf转换mp3 swf文件转换mp3文件

一、swf转换mp3是什么?Swf转换mp3是将swf文件转换成mp3文件的一种方法

06-18 02:58:00

电脑录音在哪里找_电脑录音在哪里|天天播报

1、解决方案:1 在电脑右下角的“喇叭图标”上右击,选择“录音设备”

06-18 01:00:15

新动态:真不是吹牛!生肖兔,现在不咋地,以后必会一飞冲天!

一生有贵人为其在事业上锦上添花,真是运气好到爆棚,今年必定是他们大

06-17 22:56:29

绍兴北站 绍兴北站tod项目)

绍兴北站是绍兴市与绍兴县过度博弈的结果。要是按绍兴市和绍兴县各设一

06-17 22:00:03

深圳地铁罗宝线广告_深圳地铁罗宝线 全球简讯

1、深圳1号线(罗宝线)地铁线路罗湖--机场东06:30--23:00上车2元。2、分

06-17 21:11:02

每日热文:红豆薏米芡实水的功效_喝红豆薏米水的功效

1、薏米红豆粥的功效主要就是祛湿,能够祛除体内的湿气,非常适合夏季

06-17 20:53:17

show me the money 6亚军_show me the money 6

1、《SHOWMETHEMONEY》第一季导师:DoubleK、VerbalJint、45RPM、MCSni

06-17 20:08:58

这些话说的太好了|天天快播

1、现在这个社会,男人想要不物质的爱情,女人想要不花心的男人。可现

06-17 19:07:19

李荣浩梦想的声音(有理想 李荣浩演唱歌曲)

当前大家对于有理想李荣浩演唱歌曲都是颇为感兴趣的,大家都想要了解一

06-17 18:45:48

雷神推出新款黑武士小钢炮显示器:24.5 英寸 2K 170Hz,1299 元_环球最资讯

IT之家6月17日消息,雷神在5月份推出了黑武士SE显示器,首发24 5英寸2K

06-17 18:04:04

庆云县市场监管局开展安全生产月特种设备安全事故应急演练-全球热门

为深入开展2023年“安全生产月”活动,围绕“人人讲安全,个个会应急”

06-17 17:39:21

情侣空间怎么隐藏不让别人看见_情侣空间怎么隐藏-世界快消息

1、点击头像旁边的关卡,进入我的个人资料;2、点击我的个人资料页面进

06-17 16:52:08

州政府党组召开2023年第5次(扩大)会议 环球观焦点

6月15日,州委副书记、州政府州长、党组书记冯发贵主持召开州政府党组2

06-17 16:05:42

从穿搭上感受清凉,属于夏日的清爽搭配,从这3个角度入手_全球通讯

想要打造清爽的穿搭,版型的选择也是必不可少的一环,而适合清爽搭配的

06-17 15:40:55

国家金融监管总局批复:同意解散!-观速讯

又有两家财务公司获批解散!日前,国家金融监督管理总局官网公布消息显

06-17 14:52:01

最新预警!河南两地可能发生山洪灾害_天天播报

河南广电大象新闻记者朱圣宇根据天气预报,6月17日至18日,河南省有一

06-17 14:07:20

全球热点评!灵活的古诗句有哪些 形容心平气和顺其自然的诗句

抄写作文网小编为大家提供灵活的古诗句有哪些形容心平气和顺其自然的诗

06-17 13:15:20

(聚焦海峡论坛)第十五届海峡论坛在厦门启幕 四大板块扩大两岸民间交流_全球看点

中新网厦门6月16日电(记者龙敏)海峡青年论坛、两岸公益论坛、两岸残障

06-17 12:53:46

视点!商务部:5月城乡消费同步恢复 线上线下消费较快增长

人民网北京6月17日电(焦磊)6月17日,据商务部网站消息,商务部消费促

06-17 11:30:37

募资85亿元!A股首单房企重组项目注册生效_环球热消息

6月16日,招商蛇口发布公告表示发行股份购买资产并募集配套资金申请获

06-17 11:02:04

你养我长大 我陪你到老|世界今亮点

昨日,在偃师区翟镇镇甄庄村一处农家,97岁的文顺方享受着70多岁的儿子

06-17 10:31:43

安路德铁路专用设备有限公司

1、安路德铁路专用设备有限公司是铁路设备产品研制、开发、生产、销售

06-17 10:08:11

看热讯:万泉河红岭水利枢纽工程通过终期蓄水验收

海南省万泉河红岭水利枢纽工程鸟瞰图。(资料图)海南日报讯(记者周晓梦

06-17 09:20:41

天天热点!中材节能:6月16日融资买入903.86万元,融资融券余额1.45亿元

6月16日,中材节能(603126)融资买入903 86万元,融资偿还941 8万元,

06-17 08:54:59

世瞳微电子完成数千万Pre-A轮融资

每经AI快讯,启信宝信息显示,世瞳微电子是一家SPADdtof光电传感器芯片

06-17 08:24:35

河南省事业单位技能考试查询_河南省机关事业单位技工考试成绩查询 世界看热讯

1、查询方法如下:一、打开百度搜索,在搜索栏输入“河南省机关事业单

06-17 07:53:06

原来,孩子最想要的是这三件礼物,家长们都看看 焦点热议

【九章专栏】原来,孩子最想要的是这三件礼物,家长们都看看原创作者|

06-17 07:15:31

3部热播剧收视率PK,没了营销,上星剧让顶流明星的演技原形毕露

根据网友所统计,《后浪》全剧每集的平均收视率在0 517%左右,这样的成

06-17 06:29:47

余姚生活网信息广场招聘兼职_余姚市生活网信息广场

1、可以使用百度地图的搜索附近功能来查找房子。2、手机百度地图:启动

06-17 05:44:16

交通银行个人网上银行登录入口(交通银行个人网上银行登录首页)|快资讯

1、交通银行个人网上银行服务项目包括太平洋卡业务、个人汇款业务、贷

06-17 05:13:54

当前消息!斯基拉:米利克即将重返尤文,三年合同每年年薪350万欧

知名记者、转会消息专家尼科洛-斯基拉发推,谈到了波兰前锋米利克的最

06-17 02:57:28

股票行情快报:东阿阿胶(000423)6月16日主力资金净买入3509.07万元 动态焦点

截至2023年6月16日收盘,东阿阿胶(000423)报收于49 07元,下跌0 95%,

06-17 01:06:17

美联储半年度货币政策报告:将通过“逐次会议”方式作出额外政策收紧决策

上证报中国证券网讯北京时间6月16日晚间,美联储发布半年度货币政策报

06-17 00:01:10

焦点信息:山东重大项目建设“扬鞭奋蹄” 助经济发展驶入“快车道”

连日来,莱荣高铁乳山段沿线的清运车辆来回穿梭,工作人员严谨审查每一

06-16 22:44:32

蔚来降价智己跟进 合资“反卷” 新势力? 卖车赔钱让成本失控

蔚来降价智己跟进合资“反卷”新势力?卖车赔钱让成本失控,宝马,奥迪,

06-16 21:58:15

qq怎么发送文件夹给别人_qq怎么发送文件夹_当前信息

1、要从qq上给别人直接发送整个文件或者文件夹,方法如下:在电脑上登

06-16 21:43:38

【世界时快讯】立方风控鸟·晚报(6月16日)

华夏碧水拟创业板IPO;洛阳国资拟转让1125万股中钢洛耐股份,初步定价5

06-16 20:56:20

每日报道:蔚来降价智己跟进 合资“反卷” 新势力? 卖车赔钱让成本失控

24小时财经资讯平台,依托新锐财经日报《每日经济新闻》(NationalBusin

06-16 20:36:11

汇量科技(01860)6月16日斥资167.38万港元回购45.2万股|环球观察

汇量科技(01860)公布,于2023年6月16日,公司斥资167 38万港元回购

06-16 19:57:13

“避暑山庄”难道不避暑?承德何以抢占高温榜“榜首”?|快报

“高温”一词最近频频出现在华北黄淮小伙伴们的朋友圈中6月16日13时有

06-16 19:56:14

什么是血清绒毛膜促性腺激素(什么是血清人绒毛膜促性腺激素)|当前独家

小有来为大家解答以上的问题。什么是血清绒毛膜促性腺激素,什么是血清

06-16 19:17:42

天天关注:央视新闻端午宠粉福利官宣!端午限定徽章等你来拿

央视新闻端午宠粉福利官宣!端午限定徽章等你来拿---央视新闻再次携手

06-16 18:48:40

【新视野】详解蔚来ET5旅行版 29.8万元起售 抢占BBA市场

6月15日,蔚来旗下首款旅行车——ET5Touring正式公布售价,与三厢版车

06-16 18:32:43

弹幕宠物 环球热资讯

发送弹幕或者赠送礼物会生成桌面宠物,可以用鼠标或者弹幕控制宠物,可

06-16 17:56:34

信用卡个性化分期会影响个人征信吗?没开通网上银行可以收到工资吗?_当前快播

信用卡个性化分期会影响征信吗信用卡个性化分期会影响征信;信用卡个

06-16 17:57:38

旅游船价格一览表(旅游船)_环球快报

旅游船,是指在风景秀丽的水域周游巡航或环球定线旅游航行的“客船”。

06-16 17:15:35

天天观察:视频 | 上海警方侦破购物诈骗案:“美女”客服编织消费陷阱,14人团伙获利30余万

视频|上海警方侦破购物诈骗案:“美女”客服编织消费陷阱,14人团伙获

06-16 17:00:31

小凯文波特我每场都在成长队友们帮我在场上保持冷静|观点

3月31日讯火箭队今日在主场惜败于国王队,小凯文-波特本场砍下三双,赛

06-16 16:45:18

每日看点!桑拿房家用什么品牌好_桑拿房家用
天天快消息!swf转换mp3 swf文件转换mp3文件
电脑录音在哪里找_电脑录音在哪里|天天播报
新动态:真不是吹牛!生肖兔,现在不咋地,以后必会一飞冲天!
绍兴北站 绍兴北站tod项目)
深圳地铁罗宝线广告_深圳地铁罗宝线 全球简讯
每日热文:红豆薏米芡实水的功效_喝红豆薏米水的功效
show me the money 6亚军_show me the money 6
这些话说的太好了|天天快播
李荣浩梦想的声音(有理想 李荣浩演唱歌曲)
雷神推出新款黑武士小钢炮显示器:24.5 英寸 2K 170Hz,1299 元_环球最资讯
庆云县市场监管局开展安全生产月特种设备安全事故应急演练-全球热门
情侣空间怎么隐藏不让别人看见_情侣空间怎么隐藏-世界快消息
州政府党组召开2023年第5次(扩大)会议 环球观焦点
从穿搭上感受清凉,属于夏日的清爽搭配,从这3个角度入手_全球通讯
国家金融监管总局批复:同意解散!-观速讯
最新预警!河南两地可能发生山洪灾害_天天播报
全球热点评!灵活的古诗句有哪些 形容心平气和顺其自然的诗句
(聚焦海峡论坛)第十五届海峡论坛在厦门启幕 四大板块扩大两岸民间交流_全球看点
视点!商务部:5月城乡消费同步恢复 线上线下消费较快增长
募资85亿元!A股首单房企重组项目注册生效_环球热消息
你养我长大 我陪你到老|世界今亮点
安路德铁路专用设备有限公司
看热讯:万泉河红岭水利枢纽工程通过终期蓄水验收
天天热点!中材节能:6月16日融资买入903.86万元,融资融券余额1.45亿元
世瞳微电子完成数千万Pre-A轮融资
河南省事业单位技能考试查询_河南省机关事业单位技工考试成绩查询 世界看热讯
原来,孩子最想要的是这三件礼物,家长们都看看 焦点热议
3部热播剧收视率PK,没了营销,上星剧让顶流明星的演技原形毕露
余姚生活网信息广场招聘兼职_余姚市生活网信息广场
交通银行个人网上银行登录入口(交通银行个人网上银行登录首页)|快资讯
当前消息!斯基拉:米利克即将重返尤文,三年合同每年年薪350万欧
股票行情快报:东阿阿胶(000423)6月16日主力资金净买入3509.07万元 动态焦点
美联储半年度货币政策报告:将通过“逐次会议”方式作出额外政策收紧决策
焦点信息:山东重大项目建设“扬鞭奋蹄” 助经济发展驶入“快车道”
蔚来降价智己跟进 合资“反卷” 新势力? 卖车赔钱让成本失控
qq怎么发送文件夹给别人_qq怎么发送文件夹_当前信息
【世界时快讯】立方风控鸟·晚报(6月16日)
每日报道:蔚来降价智己跟进 合资“反卷” 新势力? 卖车赔钱让成本失控
汇量科技(01860)6月16日斥资167.38万港元回购45.2万股|环球观察
“避暑山庄”难道不避暑?承德何以抢占高温榜“榜首”?|快报
什么是血清绒毛膜促性腺激素(什么是血清人绒毛膜促性腺激素)|当前独家
天天关注:央视新闻端午宠粉福利官宣!端午限定徽章等你来拿
【新视野】详解蔚来ET5旅行版 29.8万元起售 抢占BBA市场
弹幕宠物 环球热资讯
信用卡个性化分期会影响个人征信吗?没开通网上银行可以收到工资吗?_当前快播
旅游船价格一览表(旅游船)_环球快报
天天观察:视频 | 上海警方侦破购物诈骗案:“美女”客服编织消费陷阱,14人团伙获利30余万
小凯文波特我每场都在成长队友们帮我在场上保持冷静|观点
天天实时:南京市建邺区成立“精细护幼”药事服务团队  呵护儿童健康成长
X 广告
资讯
X 广告

Copyright ©  2015-2023 华夏畜牧网版权所有  备案号:琼ICP备2022009675号-37   联系邮箱:435 227 67@qq.com