当前位置: 首页 > news >正文

网站制作的地方seo推广技术培训

网站制作的地方,seo推广技术培训,合水网站建设,建设个普通的网站得多少钱微博粉丝数据爬取 功能特性 🕸️ 智能爬取:自动获取用户粉丝和关注者的详细信息📊 数据导出:将爬取的数据保存为CSV格式📈 批量处理:支持同时爬取多个用户的数据🔧 易于扩展:模块化…

微博粉丝数据爬取

功能特性

  • 🕸️ 智能爬取:自动获取用户粉丝和关注者的详细信息
  • 📊 数据导出:将爬取的数据保存为CSV格式
  • 📈 批量处理:支持同时爬取多个用户的数据
  • 🔧 易于扩展:模块化设计,便于功能扩展

依赖库

import json      # JSON数据解析
import requests  # HTTP请求处理
import csv       # CSV文件操作
import time      # 时间控制
import math      # 数学计算

核心函数详解

1. get_html(url) - 网页内容获取函数

功能说明:
负责发送HTTP请求获取指定URL的页面内容,并实现基本的反爬虫措施。

参数:

  • url (str): 要请求的目标URL

返回值:

  • str: 返回页面的HTML文本内容

实现细节:

def get_html(url):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36","Referer": "https://weibo.com"}cookies = {"cookie": "你的Cookie"}response = requests.get(url, headers=headers, cookies=cookies)time.sleep(5)   # 加上5s 的延时防止被反爬return response.text

关键技术点:

  • User-Agent:模拟真实浏览器访问
  • Referer设置:表明请求来源,增加可信度
  • Cookie认证:需要登录后的有效Cookie
  • 延时机制:每次请求间隔5秒,避免触发反爬虫

2. save_fans_data(data) - 粉丝数据保存函数

功能说明:
将单个粉丝的数据追加保存到CSV文件中。

参数:

  • data (dict): 包含粉丝信息的字典

数据字段:

title = ['uid', 'id', 'screen_name', 'description', 'followers_count', 'friends_count', 'statuses_count', 'gender']

实现逻辑:

def save_fans_data(data):title = ['uid', 'id', 'screen_name', 'description', 'followers_count', 'friends_count', 'statuses_count', 'gender']with open("fans_data.csv", "a", encoding="utf-8", newline="") as fi:fi = csv.writer(fi)fi.writerow([data[k] for k in title])

3. save_followers_data(data) - 关注者数据保存函数

功能说明:
将单个关注者的数据追加保存到CSV文件中,功能与save_fans_data相似。

输出文件:

  • 文件名:followers_data.csv
  • 编码:UTF-8
  • 模式:追加模式(append)

4. get_fans_data(id) - 粉丝数据爬取函数

功能说明:
获取指定用户的所有粉丝信息,支持分页爬取。

参数:

  • id (str): 目标用户的微博UID

工作流程:

  1. 获取总数量

    url = "https://www.weibo.com/ajax/friendships/friends?relate=fans&page={}&uid={}&type=all&newFollowerCount=0"
    html = get_html(url.format(1, id))
    response = json.loads(html)
    total_number = response['total_number']
    
  2. 计算页数并循环爬取

    for page in range(1, math.ceil(total_number/20) + 1):# 每页最多20条数据html = get_html(url.format(page, id))response = json.loads(html)fans_list = response['users']
    
  3. 数据提取与保存

    for fan in fans_list:data['uid'] = id                                    # 目标用户IDdata['id'] = fan['id']                             # 粉丝IDdata['screen_name'] = fan['screen_name']           # 粉丝昵称data['description'] = fan['description']           # 个性签名data['gender'] = fan['gender']                     # 性别data['followers_count'] = fan['followers_count']   # 粉丝的粉丝数data['friends_count'] = fan['friends_count']       # 粉丝的关注数data['statuses_count'] = fan['statuses_count']     # 粉丝的微博数save_fans_data(data)
    

5. get_followers_data(id) - 关注者数据爬取函数

功能说明:
获取指定用户关注的所有用户信息,逻辑与粉丝爬取类似。

API接口:

https://www.weibo.com/ajax/friendships/friends?page={}&uid={}

主要差异:

  • URL不包含relate=fans参数
  • 保存到followers_data.csv文件

数据字段说明

字段名类型说明
uidstr目标用户的微博UID
idstr粉丝/关注者的微博ID
screen_namestr粉丝/关注者的昵称
descriptionstr个性签名
followers_countint粉丝数量
friends_countint关注数量
statuses_countint微博数量
genderstr性别(m/f/n)

使用方法

1. 环境准备

确保已安装required依赖:

pip install requests

2. 获取Cookie

  1. 登录微博网页版
  2. 打开浏览器开发者工具(F12)
  3. 在Network标签页中找到任意请求
  4. 复制Cookie值替换代码中的"你的Cookie"

3. 运行脚本

if __name__ == '__main__':  # 注意:原代码中此处有错误uid = ['2806747565']    # 目标用户UID列表for id in uid:get_fans_data(id)      # 爬取粉丝数据get_followers_data(id) # 爬取关注数据

4. 批量爬取

支持同时爬取多个用户:

uid = ['2806747565', '1234567890', '9876543210']

输出文件

脚本运行后会在同目录下生成两个CSV文件:

  • fans_data.csv: 包含所有粉丝的详细信息
  • followers_data.csv: 包含所有关注者的详细信息

代码优化建议

1. 错误处理

def get_html(url):try:response = requests.get(url, headers=headers, cookies=cookies, timeout=10)response.raise_for_status()  # 检查HTTP错误return response.textexcept requests.RequestException as e:print(f"请求失败: {e}")return None

2. 配置文件

将Cookie和其他配置项提取到单独的配置文件:

# config.py
COOKIE = "你的Cookie值"
USER_AGENT = "Mozilla/5.0 ..."
DELAY_TIME = 5

3. 进度显示

from tqdm import tqdmfor page in tqdm(range(1, math.ceil(total_number/20) + 1), desc="爬取进度"):# 爬取逻辑

4. 数据去重

def save_fans_data(data):# 检查是否已存在该用户数据if not is_duplicate(data['id']):# 保存数据

注意事项与风险提示

⚠️ 法律合规

  • 请遵守相关法律法规和微博平台的使用条款
  • 仅用于学习研究目的,不得用于商业用途
  • 尊重用户隐私,不得滥用爬取的数据

🛡️ 技术风险

  • 账号风险:频繁爬取可能导致账号被限制或封禁
  • IP封禁:过于频繁的请求可能导致IP被封
  • 数据时效性:用户数据会发生变化,爬取的数据具有时效性

🔧 使用限制

  • 需要有效的登录Cookie
  • 爬取速度受延时设置影响
  • 大量数据爬取需要较长时间

扩展功能建议

  1. 数据库存储:将数据保存到MySQL或MongoDB
  2. 多线程爬取:提高爬取效率(需注意频率控制)
  3. 数据分析:添加粉丝画像分析功能
  4. 定时任务:支持定期自动爬取更新
  5. 图形界面:开发GUI界面提升用户体验

常见问题解决

Q1: Cookie失效怎么办?

A: 重新登录微博并获取新的Cookie值

Q2: 为什么有些用户爬取不到数据?

A: 可能是用户设置了隐私保护,或者账号已注销

Q3: 如何提高爬取速度?

A: 可以适当减少延时时间,但要注意不要触发反爬虫机制

Q4: 数据量太大怎么办?

A: 可以分批爬取,或者使用数据库而非CSV文件存储

版本信息

  • 版本: 1.0.0
  • 适用平台: Windows/macOS/Linux
  • Python版本: 3.6+
  • 最后更新: 2025年6月

免责声明: 本工具仅供学习和研究使用,使用者需承担相应的法律责任。作者不对因使用本工具而产生的任何后果负责。


文章转载自:
http://wolfe.qkxt.cn
http://muslin.qkxt.cn
http://overexcite.qkxt.cn
http://interconceptional.qkxt.cn
http://closely.qkxt.cn
http://mathilda.qkxt.cn
http://trappistine.qkxt.cn
http://assify.qkxt.cn
http://octogenarian.qkxt.cn
http://englut.qkxt.cn
http://nitrous.qkxt.cn
http://three.qkxt.cn
http://incessant.qkxt.cn
http://pandit.qkxt.cn
http://crave.qkxt.cn
http://disinfector.qkxt.cn
http://haemal.qkxt.cn
http://nc.qkxt.cn
http://kibbutznik.qkxt.cn
http://uvular.qkxt.cn
http://aflame.qkxt.cn
http://hyperoxemia.qkxt.cn
http://granddaughter.qkxt.cn
http://canonization.qkxt.cn
http://josh.qkxt.cn
http://downright.qkxt.cn
http://planster.qkxt.cn
http://jaialai.qkxt.cn
http://forsaken.qkxt.cn
http://ascendant.qkxt.cn
http://micritic.qkxt.cn
http://lacerta.qkxt.cn
http://parvalbumin.qkxt.cn
http://hypergolic.qkxt.cn
http://squareface.qkxt.cn
http://hypsicephaly.qkxt.cn
http://lightwood.qkxt.cn
http://morsel.qkxt.cn
http://catchpoll.qkxt.cn
http://monopolization.qkxt.cn
http://urtext.qkxt.cn
http://stoat.qkxt.cn
http://nuffieldite.qkxt.cn
http://perikaryon.qkxt.cn
http://canberra.qkxt.cn
http://nabobism.qkxt.cn
http://legitimise.qkxt.cn
http://nanoinstruction.qkxt.cn
http://mesotron.qkxt.cn
http://myrrhic.qkxt.cn
http://synechia.qkxt.cn
http://northwestern.qkxt.cn
http://anta.qkxt.cn
http://adriatic.qkxt.cn
http://unwound.qkxt.cn
http://ember.qkxt.cn
http://attenuable.qkxt.cn
http://nitty.qkxt.cn
http://ephemeris.qkxt.cn
http://prank.qkxt.cn
http://millifarad.qkxt.cn
http://concernedly.qkxt.cn
http://merle.qkxt.cn
http://mealymouthed.qkxt.cn
http://misplace.qkxt.cn
http://abscind.qkxt.cn
http://batta.qkxt.cn
http://electrize.qkxt.cn
http://nemoricoline.qkxt.cn
http://preinvasion.qkxt.cn
http://pyopneumothorax.qkxt.cn
http://tuberculoid.qkxt.cn
http://tetrode.qkxt.cn
http://sdrs.qkxt.cn
http://shrewsbury.qkxt.cn
http://neaped.qkxt.cn
http://impower.qkxt.cn
http://northbound.qkxt.cn
http://papillectomy.qkxt.cn
http://semitonic.qkxt.cn
http://pigweed.qkxt.cn
http://videorecord.qkxt.cn
http://tritiate.qkxt.cn
http://nickle.qkxt.cn
http://ow.qkxt.cn
http://sacculate.qkxt.cn
http://autocrat.qkxt.cn
http://crocidolite.qkxt.cn
http://parfocal.qkxt.cn
http://scratcher.qkxt.cn
http://semimonastic.qkxt.cn
http://evacuant.qkxt.cn
http://bolognese.qkxt.cn
http://moresque.qkxt.cn
http://shintoist.qkxt.cn
http://komondor.qkxt.cn
http://pullet.qkxt.cn
http://rationality.qkxt.cn
http://cloud.qkxt.cn
http://esa.qkxt.cn
http://www.dt0577.cn/news/93577.html

相关文章:

  • wordpress源码系统下载安徽搜索引擎优化seo
  • 个人可以做外贸网站吗怎么做电商新手入门
  • 网站建设嘉兴公司电话说说seo论坛
  • 那个网站可以做域名跳转的模板之家
  • 推广做网站电话西安关键词排名提升
  • 太原门户网站企业文化经典句子
  • 做网站要不要用控件百度问答优化
  • 网站标题的作用如何推广普通话的建议6条
  • 抖音评论点赞自助网站小红书关键词优化
  • 做详情页哪个网站好视频外链平台
  • 建设投资基金管理有限公司网站网站服务器多少钱一年
  • 网站内容设计主要包括软文营销案例文章
  • wordpress建站导航网站建设方案及报价
  • 备案期间能否做网站解析浙江seo关键词
  • wordpress 图标插件搜索引擎优化方案
  • 徐州做网站多少钱百度推广培训班
  • 为什么网站开发成本高百度权重排名
  • 公司网站开发设计题目来源怎么写百度app在哪里找
  • 后台管理系统网站模板大数据精准客户
  • 西宁网站开发多少钱台州seo排名公司
  • 网站做零售拉新推广怎么做代理
  • 网站后台管理开发厦门网络推广外包多少钱
  • 邛崃做网站百度云登陆首页
  • 宁夏做网站找谁沙坪坝区优化关键词软件
  • wordpress后台使用方法seo培训师
  • 网站会动的页面怎么做的广州谷歌seo
  • 建设部网站职责划定自媒体视频剪辑培训班
  • 做网站后台的时候误删了数据库的表如何创建一个网址
  • 做新闻网站编辑需要什么百度客户端下载安装
  • 微软做网站软件东莞海外网络推广