栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫-爬取豆瓣电影排行榜

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫-爬取豆瓣电影排行榜

先上代码,后面细说

import urllib.request

url = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0";

Agent = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}

# 1.请求对象的定制
request = urllib.request.Request(url=url, headers=Agent)

# 2.获取响应的数据
response = urllib.request.urlopen(request);
content = response.read().decode('utf-8')

# 下载数据到本地
with open('douban.json','w',encoding='utf-8') as fp:
    fp.write(content)



文章目录
  • 准备工作
  • 请求对象的定制
  • 获取响应的数据
  • 数据下载到本地


准备工作

我们先打开豆瓣电影,摁下F12,找到Network这一栏,摁下F5刷新

可以看到出现了很多的请求,但我们要找到我们需要的。

我们先想一个问题, 因为电影网站的数据量是十分庞大的, 渲染如此庞大的数据只有一种可能,就是通过JS发送ajax请求, 来从后端获取数据再渲染到页面上,。那么我们的数据源就明确了, 接下来就需要打开F12控制台中的Network, 选中XHR, 然后刷新页面就找到了数据源, 下面Preview显示的就是我们需要的电影数据

我们先把url和Agent复制下来,准备工作就完成了

import urllib.request

url = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0";

Agent = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}

请求对象的定制
# 1.请求对象的定制
request = urllib.request.Request(url=url, headers=Agent)

因为我们传参数的位置跟在Request方法中的参数位置不一样,所有我们要url=url, headers=Agent


获取响应的数据
# 2.获取响应的数据
response = urllib.request.urlopen(request);
centent = response.read().decode('utf-8');

打印出来看看有没有问题

是这个,我们现在就保存我们的数据

数据下载到本地


可以看到它是json的数据,所以我们也用json数据保存下来

# 下载数据到本地
with open('douban.json','w',encoding='utf-8') as fp:
    fp.write(content)

open方法默认使用gdk编码,如果数据里面有汉字,我们需要在open方法指定编码格式为’utf-8,也就是encoding='utf-8'

保存下来了,去看看成果

最开始下载下来的是一条长串,如果是pycharm就全部选中,然后crtl+alt+L就能自动整理成现在更直观的样子

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号