iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么爬取豆瓣网页
  • 186
分享到

python怎么爬取豆瓣网页

2023-06-14 13:06:57 186人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python怎么爬取豆瓣网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python 语法简要介绍python 的基础语法大体与C语言相差不大,由于省去了

这篇文章主要介绍了python怎么爬取豆瓣网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Python 语法简要介绍

python 的基础语法大体与C语言相差不大,由于省去了c语言中的指针等较复杂的结构,所以python更被戏称为最适合初学者的语言。而在基础语法之外,python由其庞大的第三方库组成,而其中包含多种模块,而通过模块中包含的各种函数与方法能够帮助我们实现各种各样的功能。

而在python爬虫中,我们需要用到的标准库有:

  • urllib

  • re

  • bs4

  • xlwt

其中urllib库可以帮助我们爬取目标网页的html代码,bs4中的beautifulsoup模块以及re库中的正则表达式可以将我们需要的数据从代码中提取出来,而xlwt库可以将数据储存至excel表中,从而最终完成数据的爬取。

接下来,就步入我们此次介绍的重点——完整爬取一个网页的数据。

本篇文章以爬取豆瓣电影top250的数据为例,并将爬取的过程分为三个部分:

爬取网页

解析网页

储存网页

那么,让我们开始吧!

豆瓣top250网址:https://movie.douban.com/top250?start=

爬取网页

import urllib.request

引入urllib库中的request模块

urllib库的基本操作可参考该网址:

Https://www.yisu.com/article/209542.htm

def askURL(url):    head = {        "User-Agent": "Mozilla / 5.0(windows NT 10.0;Win64;x64) AppleWEBKit / 537.36(KHTML, likeGecko) Chrome / 88.0.4324.182Safari / 537.36"    }# 模拟浏览器的登录    request = urllib.request.Request(url,headers=head)    #将网页的url和头部信息封装至一起    response = urllib.request.urlopen(request)    #获取网页的html代码    html = response.read().decode("utf-8")    #将获取的数据转化为utf-8格式    #print(html)    #此步可以实验一下能否成功爬取网页的html代码    return html

其中urllib.request.Request可以帮我们把要爬取的网页的url及其他的头部信息封装至一起。

urlopen函数则可以帮助我们爬取下该网页的html代码

有一些网站会设置一下反爬机制来阻止我们的爬虫,此时就需要我们设置头部信息来模拟浏览器访问网站

python怎么爬取豆瓣网页

需要用浏览器进入该网址,使用开发者模式获取我们需要的头部信息(也就是该图中的user-agent)

最后需要将我们的爬取下的html代码转化为utf-8格式进行输出

解析网页

import refrom bs4 import BeautifulSoup

引入re库和bs4库

def getData(baseurl):    datalist = []   #建立一个存放解析出的数据的元组    for i in range(0,10):        url = baseurl + str(i*25)        # 通过以下两张截图,我们可以发现豆瓣将每25部电影分为一页,共分成了10页、        # 而其url的差别仅在最后加了25,故通过该规律,可将所有10张网页的url全部获取        html = askURL(url)        soup = BeautifulSoup(html,"html.parser")        #通过beautifulsoup模块自带的html代码解析器进行解析        #并将解析器解析出的数据放至soup中

python怎么爬取豆瓣网页

逐页进行解析,使解析出的数据能被我们接下来要使用的正则表达式识别

所谓正则表达式,就是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,通过这种过滤,就可以得到我们想要的信息,就例如影片的名称,评分等信息。

findlink = re.compile(r'<a href="(.*?)" rel="external nofollow" >')  # r表示不受转义字符的影响#该代码通过正则表达式搜寻到所有关于影片链接的数据,以下代码类似findImgSrc = re.compile(r'<img.*src="(.*?)"',re.S) #让换行符包含在字符中findtitle = re.compile(r'<span class="title">(.*)</span>')findscore = 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)
for item in soup.find_all("div",class_="item"):        #提取所有class为“item”的div模块,并通过for循环一步步处理            data = []            item = str(item) #将item转化为字符串类型            link = re.findall(findlink,item)[0]            #通过影片详情链接的正则表达式抽取数据            data.append(link)            #存放至data列表中            ImgSrc = re.findall(findImgSrc,item)[0]            data.append(ImgSrc)            title = re.findall(findtitle,item)            if len(title)==2:                #如果影片有多个名称,则分别进行存储                ctitle = title[0]                data.append(ctitle)                otitle = title[1].replace("/","")                data.append(otitle)            else:                data.append(title[0])                data.append(" ")            score = re.findall(findscore,item)            data.append(score)            judge = re.findall(findjudge,item)            data.append(judge)            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

以上代码能通过正则表达式抽取出需要的数据存放data列表中,然后将所有的data数据存放至datalist列表中。

储存网页

将解析出的数据储存到excel表中

import xlwt

引入xlwt库

xlwt的基本操作可参考该网址:

https://www.yisu.com/article/209536.htm

def savepath(datalist):    workbook = xlwt.Workbook(encoding="utf-8") #创建以utf-8格式编码的一个workbook对象,该对象最后能保存为excel表格    worksheet = workbook.add_sheet("sheetwdy") #创建工作表“sheetwdy”    col = ("电影详情链接", "图片链接", "影片中文名", "影片外国名", "评分", "评价数", "概况", "相关信息") #创建一个元组    for i in range(0, 8):        worksheet.write(0, i, col[i])   # 将我们刚定义的元组中的信息写入excel表的第一行    for i in range(0, 250):        print("第%d条" % (i + 1))        data = datalist[i]        for j in range(0, 8):            worksheet.write(i + 1, j, data[j]) #将解析出的数据通过for循环一条条导入excel表中    workbook.save("豆瓣250.xls") #将该excel表进行保存

如此我们便可以把解析出的数据存储至excel表中了

python怎么爬取豆瓣网页

感谢你能够认真阅读完这篇文章,希望小编分享的“python怎么爬取豆瓣网页”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: python怎么爬取豆瓣网页

本文链接: https://www.lsjlt.com/news/270862.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python怎么爬取豆瓣网页
    这篇文章主要介绍了python怎么爬取豆瓣网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python 语法简要介绍python 的基础语法大体与c语言相差不大,由于省去了...
    99+
    2023-06-14
  • python 爬取豆瓣网页的示例
    目录python 语法简要介绍爬取网页解析网页储存网页python作为一种已经广泛传播且相对易学的解释型语言,现如今在各方面都有着广泛的应用。而爬虫则是其最为我们耳熟能详的应用,今天...
    99+
    2024-04-02
  • Python爬虫怎么爬取豆瓣影评
    本篇内容主要讲解“Python爬虫怎么爬取豆瓣影评”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫怎么爬取豆瓣影评”吧!一、学习开始前需安装模块pip install reques...
    99+
    2023-06-02
  • 使用Python怎么爬取豆瓣电影名
    这期内容当中小编将会给大家带来有关使用Python怎么爬取豆瓣电影名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • python爬取豆瓣新书清单
    使用python3的requests库快速获取豆瓣图书推荐的新书清单,并保存书籍信息和图书缩略图图片到本地 #!/usr/bin/env python # -*- coding:utf-8 -*- """ @author:Aiker Z...
    99+
    2023-01-31
    豆瓣 新书 清单
  • Python爬虫使用lxml模块爬取豆瓣
    上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢。本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快。 本次爬取的豆瓣书籍排行榜的首页地址是: https://www.dou...
    99+
    2023-01-31
    爬虫 豆瓣 模块
  • 怎么用python爬虫获取豆瓣的书评
    小编给大家分享一下怎么用python爬虫获取豆瓣的书评,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python的五大特点是什么python的五大特点:1.简单易...
    99+
    2023-06-14
  • 怎么用python爬取豆瓣前一百电影
    这期内容当中小编将会给大家带来有关怎么用python爬取豆瓣前一百电影,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的...
    99+
    2023-06-26
  • Python爬取豆瓣电影方法是什么
    本篇内容主要讲解“Python爬取豆瓣电影方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬取豆瓣电影方法是什么”吧!主要目标 环境:MAC + Python3....
    99+
    2023-06-02
  • 利用Python爬取豆瓣读书页面源码分享
    本篇内容介绍了“利用Python爬取豆瓣读书页面源码分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!源代码如下:#coding:utf-8...
    99+
    2023-06-19
  • python爬取豆瓣top250的电影数
    爬取网址: https://movie.douban.com/top250 一:爬取思路(新手可以看一下) :      1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中向get_page函数传递...
    99+
    2023-01-31
    豆瓣 电影 python
  • Python怎么爬取豆瓣复联4精彩评论
    这篇文章将为大家详细讲解有关Python怎么爬取豆瓣复联4精彩评论,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如果你们漫威迷的话,应该知道复仇者联盟4:终极之战,很快就要开始了,4月24号...
    99+
    2023-06-02
  • Python3 爬取豆瓣书籍 Xpat
    #coding:utf8import timefrom urllib import requestfrom bs4 import BeautifulSoupnum = 1#用来计算一共爬取了多少本书start_time = time.tim...
    99+
    2023-01-31
    豆瓣 书籍 Xpat
  • 爬取豆瓣电影信息
    昨天写了一个小爬虫,爬取了豆瓣上2017年中国大陆的电影信息,网址为豆瓣选影视,爬取了电影的名称、导演、编剧、主演、类型、上映时间、片长、评分和链接,并保存到MongoDB中。 一开始用的本机的IP地址,没用代理IP,请求了十几个网页之后...
    99+
    2023-01-30
    豆瓣 电影 信息
  • 爬取豆瓣电影排行top250
    爬取豆瓣电影排行top250 功能分析: 使用的库 1、time 2、json 3、requests 4、BuautifulSoup 5、RequestException """ 作者:李舵 日期:2019-4-27...
    99+
    2023-01-31
    豆瓣 电影排行
  • Python爬虫爬取豆瓣电影之数据提取值
    工具:Python 3.6.5、PyCharm开发工具、Windows 10 操作系统、谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title、链接地址、图片、评价人数、评分等 网址:https://movie.douban.com/ch...
    99+
    2023-01-30
    爬虫 豆瓣 数据
  • 怎么在Python中使用Scrapy爬取豆瓣图片
    本篇文章为大家展示了怎么在Python中使用Scrapy爬取豆瓣图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.首先我们在命令行进入到我们要创建的目录,输入 scrapy startproje...
    99+
    2023-06-15
  • 用python爬取豆瓣前一百电影
    目录实现代码:代码分析:运行结果:总结网站爬取的流程图: 实现项目我们需要运用以下几个知识点 一、获取网页1.找网页规律;2.使用 for 循环语句获得网站前4页的网页链接;3.使...
    99+
    2024-04-02
  • 如何用Scrapy爬取豆瓣TOP250
    如何用Scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使...
    99+
    2023-06-04
  • python如何爬取豆瓣电影TOP250数据
    这篇文章将为大家详细讲解有关python如何爬取豆瓣电影TOP250数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在执行程序前,先在MySQL中创建一个数据库"pachong"。i...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作