零基础学爬虫之数据存储

在之前的文章中,我们学习了如何对网页内容进行解析,并通过requests库对网页内容进行了获取,本文在此基础上,进一步介绍如何提取网页中我们想要的信息,并进行保存。

对网页信息的提取,我们可以通过正则表达式实现,因此我们首先导入正则表达式的第三方库,

import re

通过观察,我门发现我们所需要的内容在requests函数返回的内容中,如下图所示:

因此,我们可以通过以下正则表达式获取res.text中的相应信息:

titles = re.findall('\">\n.*?<span class="title">(.*?)</span>', res.text)
links = re.findall('<a href="(.*?)">\n.*?<span class="title">', res.text)
score = re.findall('<span class="rating_num" property="v:average">(.*?)</span>', res.text)

获取了信息后,我们通常需要对信息进行保存,这里介绍一种保存为列表格式的csv文件(可以通过类似方法保存为Excel,但需要导入相应的第三方库)。

我们通过循环,将需要的信息按照字典格式逐条写入列表中:

result = []
for title,link,score in zip(titles,links,scores):
    dt = {
        '电影名称':title,
        '电影链接':link,
        '电影评分':score,
        }
    result.append(dt)

再通过导入Pandas库,将字典类型的列表转换成DataFrame格式,并通过Pandas库的to_excel/to_csv将最终结果输出成想要的格式:

import pandas as pd
pd.DataFrame(result).to_excel('./output/豆瓣电影信息.xlsx')
pd.DataFrame(result).to_csv('./output/豆瓣电影信息.csv')

最终我们能够的到最终获取的电影信息:

最后附上完整代码:

import requests
import re
import pandas as pd
url = r'https://movie.douban.com/top250?start=0&filter='
paras = {'start':'0','filter':''}
headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0',  
}
res = requests.get(url,params=paras,headers=headers)


titles = re.findall('\">\n.*?<span class="title">(.*?)</span>', res.text)
links = re.findall('<a href="(.*?)">\n.*?<span class="title">', res.text)
scores = re.findall('<span class="rating_num" property="v:average">(.*?)</span>', res.text)



result = []
for title,link,score in zip(titles,links,scores):
    dt = {
        '电影名称':title,
        '电影链接':link,
        '电影评分':score,
        }
    result.append(dt)

pd.DataFrame(result).to_excel('./output/豆瓣电影信息.xlsx')
pd.DataFrame(result).to_csv('./output/豆瓣电影信息.csv')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值