通过账号爬取后台_Python爬取《少年的你》豆瓣短评

本文介绍了如何使用Python的requests库和正则表达式re进行网络爬虫,详细讲解了登录、爬取、解析、翻页及避免封号策略等步骤,以爬取并分析《少年的你》的豆瓣短评为例。
摘要由CSDN通过智能技术生成

本文记录使用request,以及正则表达式re爬取影评的过程,关于request的安装,可以使用:pip3 install requests

1)登录。注册账号,因为要爬取所有的短评内容的话,必须要登录才可以,这也算是一种反爬虫的手段,注册账号之后,我们首先要解决的就是登录问题。

在获取登录的Url的时候,我们故意输入一个错的账号和密码,就能轻松拿到这个Url以及相应的请求参数了:https://accounts.douban.com/j/mobile/login/basic

a8c2ed14b1e09d30922d73ff0f0bba55.png

拿到这些信息之后,就是发请求,登录了,代码如下:

def login_douban():
    try:
        login_url = 'https://accounts.douban.com/j/mobile/login/basic'
        headers = {
    
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
            'Referer': 'https://accounts.douban.com/passport/login_popup?login_source=anony'
        }
        data = {
    
            'name': '你的用户名',
            'password':    '你的密码',
            'remember':    'false'
        }
​
        response = session.post(login_url, headers=headers, data=data)
        if response.status_code == 200:
                return response.text
        return None
    except RequestException:
        print('登录失败')
        return None

2)爬取。登录成功之后,就可以访问《少年的你》的短评页,https://movie.douban.com/subject/30166972/comments?status=P,然后下拉到最后,通过翻页,我们会看到一个有明显规律的Url:https://movie.douban.com/subject/30166972/comments?start=0&limit=20&sort=new_score&status=P

4ec0cc65379889ffbf0b30ff464b128b.png

注意里边的参数,start=0&limit=20,意思就是从第0条短评开始,请求20条,也就是第0条~第20条的短评内容,那么就可以定义一个方法,来爬取短评内容,代码如下:着色部分是重点,我们用request.Session()来保存会话状态

session = requests.Session()
def get_comment_one_page(page=0):
    start = int(page * 20)
    comment_url = 'https://movie.douban.com/subject/30166972/comments?start=%d&limit=20&sort=new_score&status=P' % start
    headers = {
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
    }
    try:
        response = session.get(comment_url, headers=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值