简单的爬虫(豆瓣250)

通过上面的了解,我们简单的对一个豆瓣的TOP250榜单进行爬取:

import re
import requests
import csv

# 豆瓣top250地址:https://movie.douban.com/top250

# 1.确定我们需要的数据保存在什么地方
# 我们可以通过查看页面源代码搜索我们所需要的数据:

# 2.创建url:
url = "https://movie.douban.com/top250"

# 3.封装参数
param = {
    "type": "24",
    "interval_id": "100:90",
    "action": "",
    "start": 25,
    "limit": ""
}

# 4.爬虫不好使,添加UA
# 默认UA:
ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 " \
     "Safari/537.36 "
headers = {
    "User-Agent": ua
}

# 会重新处理URL,param会拼接
resp = requests.get(url=url, params=param, headers=headers)

# 5.拿到页面源代码
page_content = resp.text

# 关掉response,次数过多容易报错
resp.close()

# 用re解析数据
# 6.通过正则拿到名字,评分,评价,电影年份
obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)'
                 r'</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?'
                 r'<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*?'
                 r'<span>(?P<human>.*?)</span>', re.S)
# 拿到结果
result = obj.finditer(page_content)

# 存入CSV文件:
f = open("data.csv", mode="w")
csvwriter = csv.writer(f)

for it in result:
    # print(it.group("name"))
    # print(it.group("year").strip())  # 年份处理一下
    # print(it.group("score"))
    # print(it.group("human"))
    
    # 字典格式整理
    dic = it.groupdict()
    # 处理年份
    dic['year'] = dic['year'].strip()
    # 写入文件
    csvwriter.writerow(dic.values())
# 关闭文件流
f.close()

print("over")

我们可以通过修改param 中的 start 值来实现分页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PigeonEssence

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值