400-616-5551

您所在位置: 首页> 学习课程> python培训 | python爬虫实战——豆瓣电影get初体验

python培训 | python爬虫实战——豆瓣电影get初体验

发布百知教育 来源:学习课程 2019-10-28


本期“栏目”的四大看点:

1 如何爬取
2 如何解析与提取
3 如何解析json数据
4 实战:爬取豆瓣影视信息




1 如何爬取

how to Obtain


我们老说爬虫,那么具体到底怎么爬?爬什么?


首先,“爬虫四步”:获取数据(包含请求和响应两个动作)、解析数据、提取数据、存储数据。

最简单的请求方式是:requests.get()


代码:



import requests


url = ''response = requests.get(url)


此外,我们还需要一个工具,叫做Network。在它的帮助下,我们能看到所有的请求,这样我们才能完成爬虫四步

Network能够记录浏览器的所有请求。我们最常用的是:ALL(查看全部)/XHR(仅查看XHR)/Doc(Document,第0个请求一般在这里),有时候也会看看:Img(仅查看图片)/Media(仅查看媒体文件)/Other(其他)。最后,JS和CSS,则是前端代码,负责发起请求和页面实现;Font是文字的字体。


在爬虫里, XHR和Doc是我们最常用的。我们能在Doc里找到一个网页的源代码,而在网页源代码里找不到的信息,通常都能在XHR里找到。有它的存在,人们不必刷新/跳转网页,即可加载新的内容。


2 解析与提取

Parsing and Reading



当数据藏匿于网页源代码,在“爬虫四步”链里,最重要的库叫BeautifulSoup,它能提供一套完整的数据解析、数据提取解决方案。(关于BeautifulSoup的安装和使用,在前期文章中介绍过哦~)


XHR所传输的数据,最重要的一种是用json格式写成的,和html一样,这种数据能够有组织地存储大量内容。json的数据类型是“文本”,我们称为字符串。我们能很容易将json格式的数据转化为列表/字典,反之也可以。



3 如何解析json数据

How to Parse JSON Data


通过Response类支持使用json()方法来将数据转为list/dic,比如:


import requests

r=requests.get(‘http://……’)

print(r.json())


请求本身很有意思。requests.get()里面其实只有一个参数,即url。但其实,这个请求可以有多个参数。


params,可以让我们带着参数来请求数据:我想要第几页?我想要搜索的关键词?我想要多少个数据?

headers,请求头。它告诉服务器,我的设备/浏览器是什么?我从哪个页面而来?


再往后,除了get请求之外,还存在着另一种请求方式——postpost区别于get的是:get是明文显示参数,post是非明文显示参数。学会post,又有两个参数可用

(1)在post请求里,我们使用data来传递参数,其用法和params非常相像。

(2)cookies,中文名是“小饼干”。但它却和“小饼干”并无关联。它的作用是让服务器“记住你”,比如一般当你登录一个网站,你都会在登录页面看到一个可勾选的选项“记住我”。如果你点了勾选,服务器就会生成一个cookies和你的账号绑定。接着,它把这个cookies告诉你的浏览器,让浏览器把cookies存储到你的本地电脑。当下一次,浏览器带着cookies访问博客,服务器会知道你是何人,你不需要再重复输入账号密码,就能直接访问。


到这,考虑极端情况。代码可能会是这样:


python培训


4 如何爬取豆瓣电影数据?

Get Douban Movie Data


4.1


创建爬虫文件,获取url地址


地址为:url="https://movie.douban.com/top250"


4.2


使用request获取第一页的请求信息


python培训




4.3


获取多页的请求信息


python培训


4.4


下载电影图片地址到本地



    Python培训


    4.5


    爬取豆瓣热门美剧存储到mongodb中


    将json数据转换为字典,然后根据键subjects循环取出里面的值,取出我们想要的数据


    python培训


    python培训


    获取多页数据



    python培训



    注释:内容来自公众号数据皮皮侠  


    python培训:http://www.baizhiedu.com/python2019





    上一篇:Python培训:Kesci 平台与 Python 基本语法

    下一篇:应届生去公司找个Java程序员的职位需要什么技能?

    相关推荐

    www.baizhiedu.com

    有位老师想和您聊一聊

    关闭

    立即申请