python爬虫体验( reqests爬取豆瓣电影信息 )

python 版本:3.6.1
requests 版本:2.14.2

一、接口分析
  • 我们访问 豆瓣电影 豆瓣电影网站
  • 打开调试器( f12 ) -> 查看 network -> 选择 xhr(没有数据刷新即可) -> 点击接口search_subjects就可以看见页面电影的数据
    在这里插入图片描述
  • 将接口中的url提取出来https://movie.douban.com/j/search_subjects?type=movie&tag=热门&sort=recommend&page_limit=20&page_start=0
    • 提取url的参数( ?后面部分 )进行分析
    • type:数据的分类 movie 电影分类
    • tag:tag 为电影的分类 这是热门分类( 你们可能看见的是ASCLL码)%E7%83%AD%E9%97%A8百度转一下就好了
    • sort:排序方式,这里是recommend按热度排序
    • page_limit:请求的条数
    • page_start:请求的起始条数

在这里插入图片描述

二、代码编写

直接上代码吧,详情看注释

import requests
import json

start = 0  # 开始数
limit = 20  # 每页多少条

url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start={}"  # 请求的URL,预留一个展位来做分页
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"}  # 模拟浏览器的请求头

# 定义一个分页请求数据的函数
def getPageData(page):
    # 起始值 = (page-1) * limit
    # 例如 page:1  limit:20  = 0
    # page:2 limit:20 = 20
    res = requests.get(url.format(page * limit), headers=header)  # 发送请求,获取数据
    resDictionary = json.loads(res.text)  # 将获取到的json数据转换为python字典对象
    return resDictionary["subjects"]  # 将结果返回


with open('douban.csv', 'w', encoding="utf-8") as f:  # 以读的方式打开文件,并设置编码 douban.csv ( 没有则创建 )
    f.write("标题,评分\n")  # 写入标题和评分 头部
    for i in range(1, 11):
        data = getPageData(i)  # 当前页数据
        # 将数据循环遍历 ( 看图一我们获取的是一个数组对象 )
        for item in data:
            print(f"{item['title']},{item['rate']}") # 将打印的数据输出
            f.write(f"{item['title']},{item['rate']}\n")  # 这里使用f-string 不会的同学百度一下 或者 使用字符串拼接即可
查看文件

我们这里使用的是csv格式 可以选择用excel工具打开
在这里插入图片描述

详情看注释,有什么不懂的欢迎下方进行留言,近期作者会更新一些关于 python 爬虫、基础的文章,感兴趣的朋友可以关注一下作者!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值