爬虫基础之爬取豆瓣top250电影名字

这个比较简单,直接上代码,有需要的自己研究,转载注明出处原创地址

import requests
from bs4 import BeautifulSoup
import re


class P:
    def __init__(self):
        self.headers = {
            'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36",
        }  # 根据自己的电脑来设置
        self.data = None
        self.save_path = ""
        self.timeout = None
        self.res_data = ''
	
	# 爬取网页
    def askurl(self, urls):
        try:
            res = requests.get(urls, params=self.data, headers=self.headers, timeout=self.timeout)
        except Exception:
            return None
        if res.status_code != 200:
            return res.status_code
        # 数据处理
        return res
	# 获得数据
    def get_data(self, urls):
        for i in range(10):
            url = urls + str(i * 25)
            info = self.askurl(url)
            if not info:
                print("没有获得网页")
                continue
            if isinstance(info, int):
                print("错误", info)
                continue
            # 数据处理
            print("获得数据成功,正在解析...")
            self.jiexi(info.text)
        self.save_data(self.res_data)
	
	# 保存
    def save_data(self, info):
        if not info:
            print("没有获得数据")
            return
        path = self.save_path+'TOP250.txt'
        with open(path, 'w') as f:
            f.write(info)
            print("保存成功", path)

    # 解析
    def jiexi(self, html):
        bs = BeautifulSoup(html, "html.parser")
        res = bs.select("div> a > img")
        num_ = bs.select("em")
        for num, i in enumerate(res):
            str_ = re.match('<img alt="([^"]*)"', str(i)).group(1)
            nums = re.match('<em class="">([^"]*)<', str(num_[num])).group(1)
            str_ = str(nums) + ": " + str_ + "\n"
            self.res_data += str_


if __name__ == '__main__':
    url = 'https://movie.douban.com/top250?start='
    x = P()
    x.get_data(url)

爬取后的数据1: 肖申克的救赎
2: 霸王别姬
3: 阿甘正传
4: 这个杀手不太冷
5: 泰坦尼克号
6: 美丽人生
7: 千与千寻
8: 辛德勒的名单
9: 盗梦空间
10: 忠犬八公的故事
11: 海上钢琴师
12: 楚门的世界
13: 三傻大闹宝莱坞
14: 机器人总动员
15: 放牛班的春天
16: 星际穿越
17: 大话西游之大圣娶亲
18: 熔炉
19: 疯狂动物城
20: 无间道
21: 龙猫
22: 教父
23: 当幸福来敲门
24: 怦然心动
25: 触不可及
26: 控方证人
27: 蝙蝠侠:黑暗骑士
28: 活着

241: 聚焦
242: 追随
243: 千钧一发
244: 我爱你
245: 一次别离
246: 黑鹰坠落
247: 网络谜踪
248: 四个春天
249: 黑客帝国2:重装上阵
250: 发条橙

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值