爬虫从入门到入预(5)

之前写的文章感觉有点敷衍了事,从这一篇开始将会由知识点——代码——知识点这样进行组织。

 

今天主要学习豆瓣电影排行榜250实战,说实话,这种东西不用忘得很快。甚至昨天学的今天就忘得差不多了,好在有写工作日志,随时可以复习。

今天的主要工作是豆瓣电影排行榜250实战,找出电影名称,导演,年份和总评价人数。

首先需要导入的包:requests,csv,re

#拿到页面源代码
#通过re提取数据

import requests
import re
import csv

然后获得网页源代码,注意UA设置,绕过防爬设置。还有要记得把resp关闭掉,别被豆瓣关闭了IP。

url="https://movie.douban.com/top250"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62"
}
resp=requests.get(url,headers=headers)
resp.close()
pageinfo=resp.text

然后是解析数据,今天知识点的重点在于正则解析式的撰写

#解析数据
obj=re.compile(r'<li>.*?<span class="title">(?P<name>.*?)'
               r'</span>.*?<br>.*?(?P<year>\d+)'
               r'&nbsp.*?<span class="rating_num" property="v:average">(?P<score>.*?)'
               r'</span>.*?<span>(?P<people>.*?)人评价',re.S)

result=obj.finditer(pageinfo)

for i in result:
    # print(i.group("name"))
    # #i.group("year").strip(),如果我们没有跳过所有空白,就在最后打印的时候加上.strip()
    # print(i.group("year"))
    # print(i.group("score"))
    # print(i.group("people"))

最后为了后续的数据分析处理,我们把导出的数据导入CSV文件中

f=open("data.csv",mode="w",encoding="utf-8")
csvwriter=csv.writer(f)
for i in result:
    dic = i.groupdict()
    csvwriter.writerow(dic.values())
f.close()
print("over!")

最后的data.csv如图所示

结束,明天开始BS4解析,后面是XPATH解析 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值