import requests
import re
from lxml import etreeheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",
}def get_userinfo(user_id):#用户信息的urluserapi = "https://m.weibo.cn/api/container/getIndex?type=uid&value={0}&containerid=100505{0}".format(user_id)usdata=requests.get(userapi).json()wbname=usdata.get('data').get('userInfo').get('screen_name')return wbname
def get_userdata(name):#用户数据的urluser_id=get_userid(name)dataapi = "https://m.weibo.cn/api/container/getIndex?type=uid&value={0}&containerid=107603{0}".format(user_id)parm={"page":1}userdata = requests.get(dataapi,params=parm,headers=headers).json()# 微博主页内容,每页的全部微博内容content_infos = userdata.get('data').get('cards')article_author=get_userinfo(user_id)for content in content_infos:con=content.get('mblog',0)if con:create_time=con.get('created_at')text=con.get('text')if '全文' in text:err=etree.HTML(text)cont=err[0].xpath('string(.)').strip().replace(" ", "")article_title = cont[0:10]utl=err.xpath("//a/@href")[-1] #用于获取全文的urlwzid=utl.split('/')[-1]print(wzid)Longarticle_url='https://m.weibo.cn/statuses/extend?id='+str(wzid)print(Longarticle_url)userdata = requests.get(Longarticle_url, headers=headers).json()longarticle=userdata.get('data').get('longTextContent')print("文章标题是{},文章的创建时间是{},文章的内容是{},文章的作者是{}".format(article_title, create_time, longarticle, article_author))else:err = etree.HTML(text)cont =err[0].xpath('string(.)').strip().replace(" ", "")article_title = cont[0:10]print("文章标题是{},文章的创建时间是{},文章的内容是{},文章的作者是{}".format(article_title, create_time, cont, article_author))def get_userid(wbname):url = "https://s.weibo.com/user?q="+str(wbname)res=requests.get(url,headers=headers)main_url=etree.HTML(res.text).xpath('//div[@id="pl_user_feedList"]/div[@class="card card-user-b s-pg16 s-brt1"][1]/div[@class="avator"]/a/@href')[0]mainpage='https:'+main_url+'?profile_ftype=1&is_all=1'print(mainpage)cookie='SINAGLOBAL=9822604201551.475.1595077260698; un=15716291684; _s_tentry=ent.sina.com.cn; Apache=9492128753449.434.1596156568474; ULV=1596156568505:19:19:8:9492128753449.434.1596156568474:1596070600206; Ugrow-G0=589da022062e21d675f389ce54f2eae7; YF-V5-G0=b1b8bc404aec69668ba2d36ae39dd980; login_sid_t=663ba9eef66a71c4cad7386a937936e2; cross_origin_proto=SSL; wb_view_log=1920*10801; SCF=AlxhmsjmtfEtlIbAJfz-KnNyRXrZnfobCuff1q1sEZefLNec4FxXGnj_vVZS3sWMzHS6lMNVFIZYaQwRFeprR3w.; SUHB=04WuXIH_Q_UReY; UOR=cn.bing.com,www.weibo.com,login.sina.com.cn; wb_view_log_7318407842=1920*10801; SUB=_2AkMof_wSdcPxrARSmfARzGzqaI9H-jybqpXkAn7uJhMyAxh77lEqqSVutBF-XIS9aO0dDN10f4PaBo9YoHl4So_J; SUBP=0033WrSXqPxfM72wWs9jqgMF55529P9D9WW9jKcDfaemH.d.96zLM1IR5JpVF02fS02ceo.pSonX; YF-Page-G0=b7e3c62ec2c0b957a92ff634c16e7b3f|1596164740|1596164727; webim_unReadCount=%7B%22time%22%3A1596165384782%2C%22dm_pub_total%22%3A0%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A0%2C%22msgbox%22%3A0%7D'cookie_dict = {i.split("=")[0]: i.split("=")[1] for i in cookie.strip('\n').replace(' ', '').split(";")}page_content=requests.get(mainpage,headers=headers,cookies=cookie_dict)r=re.compile("CONFIG\[\'oid\'\]=\'(.*)\';")userid=r.findall(page_content.text)[0]print(userid)return useridif __name__ == '__main__':get_userdata('宁波晚报')

参考文章:

https://blog.csdn.net/u012813109/article/details/107659556

通过微博用户名称获取用户id及用户的文章详情相关推荐

  1. android 指定资源id,Android 通过名称获取资源ID

    当我们获取网络数据的时候,解析之后往往都是一个字符串,而不是资源id,所有我们没有办法直接使用,只能通过名称来获取到资源id, package com.example.administrator.de ...

  2. 通过id查用户名php,通过用户名称获取微博id

    有的时候我们需要调用一些微博的组件,这些调用都需要获取用户在微博的UID,让用户亲自去找UID会降低用户体验,所以我们需要想一些办法来获取. 起初想到的就是访问微博搜索页面,正则匹配页面内容,找到UI ...

  3. 通过用户名称获取微博id

    PHP 通过微博昵称获取用户的UID 2014-8-4 15:16:39代码1条评论 有的时候我们需要调用一些微博的组件,这些调用都需要获取用户在微博的UID,让用户亲自去找UID会降低用户体验,所以 ...

  4. 易语言通过进程名称获取进程ID

    通过系统映像的名称来获取进程的PID,有了PID就可以通过(进程_ID取窗口句柄) 获取窗口句柄,有了句柄就可以大漠后台绑定窗口,所以最终目的还是通过进程名称来获取进程所在窗口的句柄,用来窗口的绑定操 ...

  5. 文章id 文章标题点击量php,zblogphp函数:GetPost 获取指定ID/标题/别名的文章或页面数据...

    zblogphp辅助函数GetPost可以通过ID或别名获得指定文章或页面数据,包括文章的标题.内容.发布日期.浏览量.URL地址.文章评论.所属分类等页面数据. GetPost 函数 通过GetPo ...

  6. 微博数据爬虫——获取特定ID的热门转发用户列表(五)

    前言:由于微博网页采用动态加载方式,只能获取到js脚本,不能使用beautifulsoup解析,需要使用正则匹配获取信息 1.获取用户热门帖子转发地址 如下Kb4cwauSp为转发地址的关键参数 使用 ...

  7. 发现fir.im的bug,可以获取fir.im用户的任何软件id和用户token。

    咱们先来了解一下token和id对于fir.im平台的重要性. token和id是所有有api文档功能的网站必不可少的东西,而且关乎用户财产安全. 注意,上图的token已经失效. 可以看出,&quo ...

  8. AD域根据用户名称获取DirectoryEntry对象

    #region 根据用户帐号名称取得用户的对象/// <summary>/// 根据用户帐号名称取得用户的对象/// </summary>/// <param name= ...

  9. 微博数据爬虫——获取特定ID的粉丝和关注(二)

    注意:近期发现使用requests库访问微博数据出现ssl error错误,而使用urllib库访问则不会出现错误 功能:给定特定微博用户ID,获取微博用户的粉丝和关注 1.通过o_id获取p_id ...

最新文章

  1. Apache简单配置(4)搭建Discuz 7.0.0论坛
  2. java注释 param_java注释文档(下)
  3. boost::coroutine模块实现非对称协程的测试程序
  4. 就业阶段-java语言进价_day06
  5. 单身狗救星!电子科大校长为理工科男脱单提建议
  6. 同事:别加班了,今天可是你们1024程序员节啊!
  7. 编译原理 —— 1.2 编译系统的结构(终于弄懂语法和语义的区别了!)
  8. java跨系统和跨域_java web服务解决跨域问题
  9. 【转】PHP的执行原理/执行流程
  10. 【Transformer】Transformer中16个注意力头一定要比1个注意力头效果好吗?
  11. 4-1.最大子数组分治法实现
  12. Ubuntu 16.04 修改为几个国内更新源
  13. scrollLeft/scrollTop,offsetLeft/offsetTop,clientLeft/clientTop
  14. 242.有效的字母异位词(力扣leetcode) 博主可答疑该问题
  15. VB2010(24)窗体用户控件
  16. Wpf 初学---01设计一个优美的注册界面
  17. 手把手教你写一篇国家级大创
  18. c语言中关系运算符和逻辑运算符,c语言中的关系运算符和逻辑运算符
  19. JVM学习--垃圾回收机制
  20. identity和assigned 的区别

热门文章

  1. DeepLesion 数据集文件查看工具
  2. CSS零基础快速入门(详细教程)
  3. 零基础学SQL(四、可视化工具连接数据库、数据库创建及删除)
  4. 期货是衍生产品(期货衍生产品法)
  5. win7怎么调整屏幕亮度_调整Mac外部屏幕亮度小工具
  6. JS两个相同的字符串被判断为不相等问题
  7. JS判断设备是手机端还是PC端,并加载不同的css/js文件
  8. QQ第三方登录的详细教程
  9. win10系统更新后,网络连接显示正常(能登qq),但是所有浏览器都打不开网页,谷歌火狐显示代理拒接连接。
  10. MacBook Pro M1 Parallels Desktop 安装Win11