爬豆瓣高分榜

网上看到有人用python做爬虫练习,自己也学着来个

(虽然很烂)

如果你很不幸的看到了,摊手...:

# -*- coding:utf-8 -*-
# Author:Jacky Cheng
'''爬取豆瓣高分榜 电影数据
遇到的问题:
    1、requests,get(url) 的返回对象必须 加上 .text 属性,否则 在使用BeautitulSoup时无论怎样
        调整 解析器 都会报错。
    2、解析器:html.parse
               lxml
               html5lib
               无论哪一种并不能一定能解析成功,需多次尝试
    3、find_all() 根据CSS 定位 标签 用 关键字"class_" , 以避免 与 python内置的class关键字冲突
    4、附上 BeaufulSoup 官方文档地址:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
    '''
import html
import requests
from bs4 import BeautifulSoup
content = ''

for i in range(11):
    try:
        url = 'https://www.douban.com/doulist/240962/?start={}'.format(i)
        response = requests.get(url).text

        bsObj = BeautifulSoup(response, 'html5lib')
        div_tags = bsObj.find_all('div', {'class':'bd doulist-subject'})

        for div_tag in div_tags:
            move_name = div_tag.find('div', {'class':'title'}).find('a').get_text().strip()
            move_link = div_tag.find('div', class_='title').find('a')['href'].strip()
            actors = div_tag.find('div', class_='abstract').get_text().strip()
            rate = div_tag.find('div', class_='rating').find('span', class_='rating_nums').get_text().strip()
            rate_number = div_tag.find('div', class_='rating').find_all('span')[2].get_text().strip()

            content += move_name+';\n\t'+'评分:'+rate+'分'+';\n\t'+rate_number+';\n\t'+actors+';\n\t'\
                       +'豆瓣地址:'+move_link+'\n\n'
            print(type(content))
    except:
        print("在{}发生了一个错误,请注意》》》》".format(url))
        continue

with open('豆瓣高分榜.txt', 'w', encoding='utf-8') as f:
    f.write(content)
    f.close()

print("恭喜 完成工作!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值