小白初识Python爬虫

突然想学习Python爬虫,看过一些视频和大牛的博客后,尝试使用requests爬取豆瓣电影,并将相关信息保存到excel中。

一、准备工作

  1. 安装requests库,用来爬取数据
  2. 安装xlsxwriter库,用来保存数据到excel
  3. 安装fiddler工具,用来抓包分析

二、抓包分析

目标网址 https://movie.douban.com/tag/#/ 豆瓣电影的分类目录
在这里插入图片描述
观察网页,在最下面有个加载更多,点击后,会显示出更多的电影信息,用fiddler抓取这一动作,结果如下:
在这里插入图片描述
点击后,发现页面没有刷新,所以是动态网站,那么数据应该是通过json发送过来,抓包结果也可以明显看到只有一个json数据

针对此包分析,先看右上角的request请求
在这里插入图片描述
是通过get方式,请求如下地址的数据
https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=20

其中含有参数sort、range、tags、start,目前还不清楚这些数据的含义,继续分析右下角的response响应
在这里插入图片描述
可以发现,response的中含有20个这样的{},每个{}都有title:电影名称、casts:演员表、directors:导演、url:详情页面、cover:封面

三、编码解析

下面先尝试编码,获取这一个会话的数据

import requests
url = 'https://movie.douban.com/j/new_search_subjects?'
query_string = {
     #构造get参数信息,方便后续的变更
    'sort':'U',
    'range':'0,10',
    'tags':'',
    'start':'20'
}
headers = {
    #构造request的头部信息,当前请求只有UA有用,不知道需要哪些数据的,可以把抓包获取的头部信息先都写下来
    'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}

request = requests.get(url=url, params=query_string, headers=headers)  # 发送get请求
print(request.text)

运行结果如下
在这里插入图片描述
可以看到已经成功获取数据
再来解析数据

import json
'''
省略上一段代码
'''
request = requests.get(url=url, params=query_string, headers=headers)
movies = json.loads(request.text)['data']#jsons.loads()获取json数据,数据是存储在字典中的'data'下
titleList = []
directorsList = []
infoUrlList = []
castsList = []
for each in movies:
    titleList.append
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值