鱼C论坛

 找回密码
 立即注册
查看: 1944|回复: 0

[技术交流] 爬取b站用户信息

[复制链接]
发表于 2021-1-17 13:10:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Pythonnewers 于 2021-1-17 13:14 编辑

RT
可爬取"mid",'名字','性别','头像地址','等级','大会员'
import requests
import re
import json
from bs4 import BeautifulSoup
import xlsxwriter
import time
import random
book = xlsxwriter.Workbook(r'C:\Users\Sun\Desktop\Bilili User.xlsx')
sheet = book.add_worksheet()
word=['A','B','C','D','E','F','G','E']
oppotion=["mid",'名字','性别','头像地址','等级','大会员']
for p in range(len(oppotion)):
    l = word[p]
    sheet.write(f"{l}1",oppotion[p])
headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}

def excel(*x):
    for i in range(len(x)):
        l=word[i]
        sheet.write(f"{l}{ueser+2}",x[i])
    print(str(x[0])+"完成")
def mes(x):
    print(x)
    if x['code']==-404:
        return
    x=x['data']
    mid=x["mid"]
    name=x["name"]
    sex=x["sex"]
    face=x["face"]
    level=x["level"]
    vip=x['vip']['label']['text']
    excel(mid,name,sex,face,level,vip)
def req(url):
    res=requests.get(url=url,headers=headers).content.decode("utf-8")
    soup=BeautifulSoup(res,"lxml")
    dic=json.loads(soup.p.get_text())
    mes(dic)
def uid(a):
    mid=re.findall("\d+",a)[0]
    global data
    data={'mid':f'{mid}','jsonp':'jsonp'}
    url=f"https://api.bilibili.com/x/space/acc/info?mid={mid}&jsonp=jsonp"
    req(url)
def user(uesers):
    global ueser
    for ueser in range(uesers):
        url=f"https://space.bilibili.com/{ueser+1}/"
        uid(url)
        time.sleep(random.random())
    book.close()
user(100)
↑↑↑
user这里()写爬取多少用户(按顺序)
↑我有些打英文手滑写错了,运行后才发现拼写错误
mid应该就是uid
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 21:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表