抖音分享页用户信息爬取

其实这个是有客户要求做的,但我完成的不够完美。过来分享出来好了~

首先,你知道抖音有一个用户分享页吧?

像这样的:https://www.douyin.com/share/user/58841646784

F12查看代码。

ok,可以看到有数字的地方都做了字体反爬,比如抖音id上的数字啊,粉丝数这些。

那我们这样子,先把它的这个字体文件下载下来

在开发者工具中选择Network筛选font后刷新网页就能找到这个字体了,如下图:

然后复制链接到新窗口打开就能下载字体了。

这是我下到的字体

下一步就是去百度网页字体编辑器

链接:http://fontstore.baidu.com/static/editor/index.html

然后选择打开,打开下载好的字体文件:

打开字体看到的效果:

看到没,在开发者工具哪里看得到,一个数字,其实是有三个unicode编码对应的。

那我们一个个保存下来这些对应关系就好了。

这是我保存下来的:

change = {(‘\ue602‘,‘\ue60E‘,‘\ue618‘):‘1‘,(‘\ue603‘,‘\ue60d‘,‘\ue616‘):‘0‘,(‘\ue604‘,‘\ue611‘,‘\ue61a‘):‘3‘,(‘\ue605‘,‘\ue610‘,‘\ue617‘):‘2‘,(‘\ue606‘,‘\ue60c‘,‘\ue619‘):‘4‘,(‘\ue607‘,‘\ue60f‘,‘\ue61b‘):‘5‘,(‘\ue608‘,‘\ue612‘,‘\ue61f‘):‘6‘,(‘\ue609‘,‘\ue615‘,‘\ue61e‘):‘9‘,(‘\ue60a‘,‘\ue613‘,‘\ue61c‘):‘7‘,(‘\ue60b‘,‘\ue614‘,‘\ue61d‘):‘8‘}

ok,其实这个并不麻烦。麻烦的是怎么去获取链接后面那个id

分享链接的id获取的话我是抓客户端数据包拿到的,键是‘uid‘。

如果你有高效率的获取这个id的方法,欢迎过来分享,让我付费也行哦~

分享页爬取的完整代码:

import requests
from bs4 import BeautifulSoup as bs

id = ‘86560737726‘
change = {(‘\ue602‘,‘\ue60E‘,‘\ue618‘):‘1‘,(‘\ue603‘,‘\ue60d‘,‘\ue616‘):‘0‘,(‘\ue604‘,‘\ue611‘,‘\ue61a‘):‘3‘,(‘\ue605‘,‘\ue610‘,‘\ue617‘):‘2‘,(‘\ue606‘,‘\ue60c‘,‘\ue619‘):‘4‘,(‘\ue607‘,‘\ue60f‘,‘\ue61b‘):‘5‘,(‘\ue608‘,‘\ue612‘,‘\ue61f‘):‘6‘,(‘\ue609‘,‘\ue615‘,‘\ue61e‘):‘9‘,(‘\ue60a‘,‘\ue613‘,‘\ue61c‘):‘7‘,(‘\ue60b‘,‘\ue614‘,‘\ue61d‘):‘8‘}

#将爬到的单个unicode编码放到这个函数会返回对应的数字
def change_2_num(code):
    for i in change:
        try:
            if code.split()[0] in i:
                return change[i]
        except:
            print(‘函数change_2_num出错‘,code.split())
    return code

#请求链接,返回soup对象
def get_html(id):
    url = ‘https://www.douyin.com/share/user/‘+id
    print(url)
    headers = {"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60"}
    r = requests.get(url,headers=headers,verify=False)
    if not len(r.text)>10000:
        return
    soup = bs(r.text,‘lxml‘)
    return soup

def get_num(name,attrs):
    fin = ‘‘
    res = soup.find_all(name=name,attrs={‘class‘:attrs})
    if res:
        mid = res[0].text.split()
        #将获取的文本以空格切成列表,不切的话因为空格的存在会返回‘‘而不是uincode编码
    else:
        return
    for code in mid:
        fin+=change_2_num(code)
        #遍历文本内容,如果是unicode编码则返回对应数字
    print(fin)
    return fin

soup = ‘‘
def main():
    global soup
    soup = get_html(id)
    if not soup:
        return
    try:
        nickname = soup.find(name=‘p‘,attrs={‘class‘:‘nickname‘}).string
        print(nickname )
        signature = soup.find(name=‘p‘,attrs={‘class‘:‘signature‘}).string
        print(signature)
        dyID = get_num(‘p‘,"shortid").replace(‘抖音ID:‘,‘‘)
        focus = get_num(‘span‘,"focus").replace(‘关注‘,‘‘)
        follower = get_num(‘span‘,"follower").replace(‘粉丝‘,‘‘)
        liked = get_num(‘span‘,"liked-num").replace(‘赞‘,‘‘)
        works = get_num(‘div‘,"user-tab").replace(‘作品‘,‘‘)
        like = get_num(‘div‘,"like-tab").replace(‘喜欢‘,‘‘)
    except:
        return

main()

The end--

原文地址:https://www.cnblogs.com/byadmin/p/11441137.html

时间: 2024-07-31 16:00:06

抖音分享页用户信息爬取的相关文章

抖音用户信息爬取案例 𰇁

原文: http://blog.gqylpy.com/gqy/416 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

python网络爬虫(14)博客园用户信息爬取

说明 这里只放代码,方案技术没有更变 代码说明 需要cookies绕过登录,使用selenium在Firefox下模拟.需要安装geck...?插件,另外,数据存储在sqlite,需要安装. Spider.py import HtmlDownloader import HtmlParser import DataOutput import UrlManager import re from selenium import webdriver class Spider(object): def _

python实现人人网用户数据爬取及简单分析

这是之前做的一个小项目.这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~ 简单来说这个项目实现了,登录人人网并爬取用户数据.并对用户数据进行分析挖掘,终于效果例如以下:1.存储人人网用户数据(户主的全部好友.户主好友的全部好友.户主及好友关注的公共主页).2.信息可视化,绘制户主好友间的关系网络图:3.数据挖掘,通过分析户主好友关注的公共主页,向户主推荐公共主页. 项目分为三个部分,各自是人人网登录及用户数据爬取与存储.用户关系可视化.公共主页推荐.以下分别介绍这三个部分. 第一部分实现

链家信息爬取

一.数据库封装 import pymysql class MysqlHelper(object):    def __init__(self):        self.db = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='abc123', database='py1011', charset='utf8')        self.cursor = self.db.cursor() def execut

PHP爬虫:百万级别知乎用户数据爬取与分析

抓取了110万的用户数据,数据分析结果如下: 开发前的准备 安装Linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu: 安装php5.6或以上版本: 安装MySQL5.5或以上版本: 安装curl.pcntl扩展. 使用PHP的curl扩展抓取页面数据 PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库. 本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能访问.当我们在浏览器的页面中点击一个用户头像链接进入

爬虫系列之链家的信息爬取及数据分析

关于链家的数据爬取和分析 已经实现 1.房屋数据爬取并下载 2.房屋按区域分析 3.房屋按经纪人分析 4.前十经纪人 5.经纪人最有可能的位置分析 6.实现以地区划分房屋 目前存在的问题: 1.多线程下载的时候会出现个别文件不继续写入了(已经解决) 2.未考虑经纪人重名问题 3.查询中发现不是每次都能 get 到 url 的数据,具体原因可能跟header有关,或者网站反扒(已经解决,手机端的header有时候访问pc端会出现None的情况) 4.守护线程那里应该出问题了,如果有文件储存完成,其

【Python】博客信息爬取-微信消息自动发送

1.环境安装 python -m pip install --upgrade pip pip install bs4 pip install wxpy pip install lxml 2.博客爬取及发送 from bs4 import BeautifulSoup from threading import Timer import requests import traceback from wxpy import * url = '' nIndex = 6 my_groups = None

python_爬虫_腾讯新闻app 单页新闻数据分析爬取

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000; min-height: 12.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px;

requests+re(正则)之猫眼top100排名信息爬取

这篇博客介绍怎么爬取猫眼top100的排名,网址,评分等.使用的是爬虫技术最基础的requests请求加re(正则)提取. 有时候我们看电影会不知道看什么电影比较好,一般打开电影排名,还得一下下的点击到电影排行页面.所以就有了这个爬虫,直接就能得到猫眼的电影排名和他的网址,岂不乐哉. 我们先打开到猫眼的top100页面:https://maoyan.com/board/4? 然后点击到第二页:https://maoyan.com/board/4?offset=10 点击第三页:https://m