您的当前位置:首页 >探索 >关注和粉丝信息width的页面结构相同怎么办? 正文
时间:2025-05-11 11:29:16 来源:网络整理编辑:探索
关注和粉丝信息的页面结构相同,所以只要写一个函数就可以完成两个类似的任务。首先剖析URL的特性,打开任意一个移动端网页版微博的关注页和粉丝页。关注URL,有以下两种方式关注:https://weibo最便宜快手刷赞业务平台
关注和粉丝信息的关注构相页面结构相同,所以只要写一个函数就可以完成两个类似的和粉任务。首先剖析URL的丝信最便宜快手刷赞业务平台特性,打开任意一个移动端网页版微博的面结关注页和粉丝页。关注URL,同办有以下两种方式
关注: https://weibo.cn/uid/follow?page=页码 粉丝: https://weibo.cn/uid/fans?page=页码
很容易才能打开相应的关注构相页面。再来看系统容许我们查看多少页
写一个函数获得可以迭代的和粉次数
def getPageNum(soup): """ soup是关注页或粉丝页html的解析的返回结果,BeautifulSoup的丝信实例 """ return int(soup.find(name='input', attrs={ 'name': 'mp'})['value'])
同样地,F12检测
每一个用户的面结主页链接出现两次(红色方框),并且父标签都是同办、属性都是关注构相最便宜快手刷赞业务平台valign=“top”,所以每位关注(粉丝)用户信息出现两次。和粉获取的丝信方式比较简单,用findAll函数找出所有标签,面结后以step=2挨个提取。同办从蓝色方框中也能看到,用户主页URL不一定包含UID(优先展示个性域名),所以第一步获得UID很重要。其实这儿使用了一种麻烦的方式,因为每条信息都出现两次。观察图中第一个标签,它还有style="width: 52px"属性。还有一个更简单的方案是黄色方框的内容,这个表情是“关注他”按钮的链接,每个用户只出现一次微博粉丝链接,而且链接中早已包含了uid。如果借助这个标签的信息,第一步获取uid就是不必要的。
利用白色方框标签信息代码
def getRelation(person, relation, mobile=False): if not (relation := relation.lower()) in ['focus', 'fans']: raise ValueError('参数必须是 [\'focus\',\'fans\']') if relation == 'focus': pageUrlFunc = focusPageUrl addFunc = person.addFocus else: pageUrlFunc = fansPageUrl addFunc = person.addFans url = pageUrlFunc(person, 1, mobile) soup = getHtml(url=url, headers=header) pageNum = getPageNum(soup) for page in range(1, pageNum+1): url = pageUrlFunc(person, page, mobile) soup = getHtml(url=url, headers=header) blank = ' ' if page < 10 else '' print('正在抓取第', str(page)+blank, '页信息') memberList = soup.findAll(name='td', attrs={ 'valign': 'top'}) for i in range(1, len(memberList), 2): memberInfo = memberList[i].find(name='a') name = memberInfo.text uid = memberInfo['href'].split('/')[-1] addFunc(WeiboUser(name=name, uid=uid)) print(person.name + ': ' + relation + " 信息抓取成功\n-------------------------------------------")
4. 基本链接和HTML
def homepageUrl(person, mobile=False): if mobile: pofix = '' if person.uid: pofix = person.uid elif person.customDomain: pofix = person.customDomain else: raise RuntimeError('缺少必要信息') return 'https://weibo.cn/' + pofix if oid := person.oid: return 'https://www.weibo.com/u/' + oid if pid := person.pageId: return 'https://www.weibo.com/p/' + pid if domain := person.customDomain: return 'https://www.weibo.com/' + domain def focusPageUrl(person, page=1, mobile=False): if mobile: return 'https://weibo.cn/' + person.uid + '/follow?page=' + str(page) return 'https://weibo.com/p/' + person.pageId + '/follow?page=' + str(page)def fansPageUrl(person, page=1, mobile=False): if mobile: return 'https://weibo.cn/' + person.uid + '/fans?page=' + str(page) return 'https://weibo.com/p/' + person.pageId + '/follow?relate=fans&page=' + str(page)def getHtml(url, headers): response = requests.get(url=url, headers=headers) if (html := response.text): return bs(html, 'lxml') print('无内容,正在重新请求') getHtml(url, headers)
getHtml函数接收URL和恳求头,返回经过BeautifulSoup实例。因为不登陆微博,我们看不到用户的关注,所以恳求头里应当包含登入信息,cookie正是包含登入信息的一项。打开浏览器登陆微博,按F12步入开发者工具,选中网路(Network)
把cookie所有内容保存出来。为了模拟浏览器浏览,把user-agent也保存出来。
cookie = '
买赞1毛1000赞,快手刷赞平台免费推广 - 0.1元100000qq名片赞2025-05-11 10:51
快手刷双击秒刷全网最低 - 爱娟抖音刷赞小助手2025-05-11 10:49
qq业务平台下单全网最低价 - 刷赞平台推广qq网站低价2025-05-11 10:21
快手刷粉低价 - 快手刷赞平台2025-05-11 10:02
刷赞平台全网+最低价啊快手 - 抖音快速刷1000粉2025-05-11 09:42
快手播放量平台 - 快手刷赞便宜平台2025-05-11 09:37
卡盟自助下单刷赞平台 - 快手刷赞在线自助平台2025-05-11 09:33
球球刷礼物最便宜网站 - 抖音点赞自助网站2025-05-11 09:29
在线自助下单平台,快手刷双击秒刷网址 - 刷赞平台全网最低价啊快手快手2025-05-11 09:22
刷赞推广平台低价 - 超低价刷qq业务2025-05-11 09:19
ks代刷网站推广链接免费,快手刷赞平台网站推广 - 秒刷网站24小时自助下单平台2025-05-11 10:57
快手刷赞优质平台网站 - 刷快手双击软件2025-05-11 10:42
代网刷qq业务网 - 24小时自助刷业务平台2025-05-11 10:30
ks业务代刷啊陌代刷 - ks自助刷业务最低价2025-05-11 10:10
免费领快手播放量 - 小柯秒赞网站2025-05-11 09:35
ks刷网站免费蚂蚁 - 8元一万快手粉丝2025-05-11 09:24
快手1元1000千粉丝网站 - 抖音刷粉丝网站自助平台2025-05-11 09:14
快手刷播放点赞评论有用吗 - 91卡盟自助下单平台2025-05-11 09:12
快手刷赞网址怎么推广,刷赞快手平台全网+最低价啊豪 - 空间刷赞网站2025-05-11 09:00
刷赞网站推广qq免费说说赞 - dy全网最低代刷2025-05-11 08:54