python爬去新浪微博_详解用python写网络爬虫-爬取新浪微博评论

# -*- coding:gbk -*-

import re

import requests

import json

from lxml import html

#测试微博4054483400791767

comments=[]

def get_page(weibo_id):

url='https://m.weibo.cn/status/{}'.format(weibo_id)

html=requests.get(url).text

regcount=r'"comments_count": (.*?),'

comments_count=re.findall(regcount,html)[-1] comments_count_number=int(comments_count)

page=int(comments_count_number/10)

return page-1

def opt_comment(comment):

tree=html.fromstring(comment)

strcom=tree.xpath('string(.)')

reg1=r'回复@.*?:'

reg2=r'回覆@.*?:'

reg3=r'//@.*'

newstr=''

comment1=re.subn(reg1,newstr,strcom)[0] comment2=re.subn(reg2,newstr,comment1)[0] comment3=re.subn(reg3,newstr,comment2)[0] return comment3

def get_responses(id,page):

url="https://m.weibo.cn/api/comments/show?id={}&page={}".format(id,page)

response=requests.get(url)

return response

def get_weibo_comments(response):

json_response=json.loads(response.text)

for i in range(0,len(json_response['data'])):

comment=opt_comment(json_response['data'][i]['text'])

comments.append(comment)

weibo_id=input("输入微博id,自动返回前5页评论:")

weibo_id=int(weibo_id)

print('n')

page=get_page(weibo_id)

for page in range(1,page+1):

response=get_responses(weibo_id,page)

get_weibo_comments(response)

for com in comments:

print(com)

print(len(comments))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值