使用bs4爬取豆瓣top250电影并保存到csv中


import requests
from bs4 import BeautifulSoup
import time
import pandas as pd

# 数据存放在列表里
datas = []
kv={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
    'cookie':'bid=TJY9kh3SJWw; douban-fav-remind=1; ll="118281"; __utmc=30149280; dbcl2="202835581:GhhuJy32acY"; ck=NkN3; push_noty_num=0; push_doumail_num=0; __utma=30149280.620523441.1627457358.1640680787.1640708547.7; __utmb=30149280.0.10.1640708547; __utmz=30149280.1640708547.7.4.utmcsr=accounts.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/'}

page=0
while (page<=250):
    r=requests.get('https://movie.douban.com/top250?start='+str(page)+'&filter=',headers=kv)
    page=page+25
    if (r.status_code==200):
        source=r.text
        soup = BeautifulSoup(source,'html.parser')
        items=soup.find_all('div','item')
        for i in items:
            # print(i.find_all('span','title')[0].string)
            # print('score:' + i.find_all(property="v:average")[0].string)
            datas.append({
                'name': i.find_all('span','title')[0].string,
                'score': i.find_all(property="v:average")[0].string,
            })
        print("\n")
    else:
        print("目标网站不给予响应")
    time.sleep(2)
print('OVER~')
# 写入到文件
df = pd.DataFrame(datas)
df.to_csv("1.csv", index=False, header=True, encoding='utf_8_sig')

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值