网络爬虫练习(信息爬取)

要求:提取电影Top250的电影基本信息,包括电影名称、电影外文名、评分等,将获取到的内容保存到本地csv文件中。

#导入库
import requests
from bs4 import BeautifulSoup
import pandas as pd

#获取网页
urls = ['https://movie.douban.com/top250?start=%a&filter='%(a*25) for a in range(0,10)]#网页信息有多页,通过观察发现url只在start上有区别,以此为0,25,50……所以需要循环获取得到每一页不同的url,通过%a来改变start的值
headers= {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
NameAll=[]
EnglishNameAll=[]
ScoreAll=[]
for url in urls:#开始从获取的url中进行遍历
    res=requests.get(url,headers=headers)
    html=res.text
    #解析网页
    soup=BeautifulSoup(html,'lxml')
    datalist=soup.select(".grid_view li")
    Name_list=[]
    EnglishName_list=[]
    Score_list=[]
    for li in datalist:
        Name_list.append(li.find(attrs={'class':'title'}).text)
        EnglishName_list.append(li.find(attrs={'class':'other'}).text)
        Score_list.append(li.find(class_='rating_num').string)
    NameAll.extend(Name_list)
    EnglishNameAll.extend(EnglishName_list)
    ScoreAll.extend(Score_list)#extend和append的区别在于一个前者会改变加入数据的格式,后者不改变加入数据的格式,保持原有格式。
# 保存数据
data={
    'Name':NameAll,
    'EnglishName':EnglishNameAll,
    'Score':ScoreAll
}
df=pd.DataFrame(data)
df
df.to_csv('e:/Top250.csv',index=None)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值