爬虫项目1 – 豆瓣电影top250

1265-张同学

发表文章数:58

首页 » 算法 » 正文

步骤

  1. 定义爬取函数
import requests
import re
import csv

def parse_html(url,headers,params):
    try:
        res = requests.get(url=url, headers=headers, params=params)
        return res.content.decode('utf-8')
    except requests.RequestException:
        return None
  1. 使用正则匹配来获取所需字段
def get_data(html):
    movie = {
        'rank': '',
        'title': '',
        'score': '',
        'comments': ''
    }

    pattern = re.compile('<li>.*?<em class="">(/d+)</em>.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span class="inq">(.*?)</span>.*?</li>',re.S)
    datalist = re.findall(pattern, html)
    for data in datalist:
        movie['rank'] = data[0]
        movie['title'] = data[1]
        movie['score'] = data[2]
        movie['comments'] = data[3]
        save(movie)
  1. 保存csv到本地。
def save(item):
    with open('./Doubantop250.csv','a', encoding='utf-8') as file:
        writer = csv.writer(file)
        writer.writerow(item.values())

def run():
    headers = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
    for i in range(10):
        url = 'https://movie.douban.com/top250?start={}&filter='.format(i*25)
        html = parse_html(url, headers, {})
        get_data(html)
    print('Done!')

if __name__ == '__main__':
    run()
  1. 完成。入门级爬虫,非常简单。

未经允许不得转载:作者:1265-张同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《爬虫项目1 – 豆瓣电影top250》 发布于2020-12-07

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录