python - 美汤如何选择某类下的所有数据
问题描述
当我使用findAll
我的班级和我的标签时,代码找不到任何东西
这是我的尝试:
import requests
from bs4 import BeautifulSoup
# get the data
data = requests.get('https://www.twitch.tv/directory/game/Counter-Strike%3A%20Global%20Offensive/clips?range=24hr/')
# load data into bs4
soup = BeautifulSoup(data.text, 'html.parser')
clip = soup.find_all("a", ["tw-full-width tw-interactive tw-link tw-link--hover-underline-none tw-link--inherit"])
print(clip)
有什么问题?
解决方案
数据是通过 Ajax 动态加载的,但是你可以使用requests
/ json
modules 来加载它:
import json
import requests
url = 'https://gql.twitch.tv/gql#origin=twilight'
params = [{"operationName":"ClipsCards__Game","variables":{"gameName":"Counter-Strike: Global Offensive","limit":20,"criteria":{"languages":[],"filter":"LAST_WEEK"}},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"0d8d0eba9fc7ef77de54a7d933998e21ad7a1274c867ec565ac14ffdce77b1f9"}}}]
headers = {'Client-Id': 'kimne78kx3ncx6brgo4mv6wki5h1ko'}
data = requests.post(url, headers=headers, json=params).json()
# uncomment this to print all data:
# print(json.dumps(data, indent=4))
for g in data[0]['data']['game']['clips']['edges']:
print('{:<60} {:<10} {}'.format(g['node']['title'], g['node']['viewCount'], g['node']['url']))
印刷:
12 y/o ace 121409 https://clips.twitch.tv/GoldenBlitheBillKeepo
Dupreeh feeling himself 51384 https://clips.twitch.tv/TenderBlatantCattleWoofer
ZyWoo Deagle Ace 49288 https://clips.twitch.tv/FurryWiseLemurLitty
ART + GAU JOGO DA TEAM ONE 34676 https://clips.twitch.tv/FamousDeliciousCasetteSMOrc
flusha insane 1v4 32522 https://clips.twitch.tv/NaiveSavoryLadiesOneHand
UNLUCKY XDD 31698 https://clips.twitch.tv/AveragePoisedDelicataCmonBruh
lindinho clutchzero 1x3 24808 https://clips.twitch.tv/SmokyIronicMangetoutDatBoi
Stewie2k Selfless Play 24693 https://clips.twitch.tv/TallViscousSlothBloodTrail
bedzie magik flesh 20393 https://clips.twitch.tv/TangibleAverageDugongNononoCat
moe vs autimatic on stream 20311 https://clips.twitch.tv/CrowdedYummyNigiriPastaThat
Tarik insane 1v5 his first EU FPL game 20104 https://clips.twitch.tv/HappyTangibleChowderRiPepperonis
Snax zaskakuje przeciwnika i wygrywa przegraną rundę! 19614 https://clips.twitch.tv/SpinelessFragileEchidnaImGlitch
Welcome to EU Tarik 18400 https://clips.twitch.tv/StormySavageDotterelYee
csgo'd 17318 https://clips.twitch.tv/EmpathicAwkwardOtterHeyGuys
epic sauce 15501 https://clips.twitch.tv/AttractiveRacyPhoneYouWHY
NiKo 1v2 2x 1taps 15088 https://clips.twitch.tv/SuspiciousJoyousSalsifyPogChamp
morda 14394 https://clips.twitch.tv/PuzzledLightMonkeyMingLee
RAIN 3k vs sAw 14387 https://clips.twitch.tv/TastySavoryKangarooPRChase
Synchronous grenade throwing 13881 https://clips.twitch.tv/TransparentFrailCoffeePipeHype
sneaky fail ;p 13668 https://clips.twitch.tv/SquareRockyBunnyCclamChamp
推荐阅读
- python - 如何在 QScrollArea 中添加多个布局
- node.js - discord.js shard.broadcastEval 异步
- javascript - 取决于 R 闪亮应用程序中使用的绘图对象名称的神秘 javascript 错误
- c - 通用动态数组未正确更新属性
- azure - Azure Cosmos Db 如何在请求超过保留的 RU 时决定拒绝请求?
- mongodb - 如何将键val添加到mongodb中数组的每个元素?
- sql - 想要一行数据,但 group by 似乎没有这种影响
- rest - 版本一 - 使用控制台中的 rest api 获取依赖项
- string - 长生不老药中的字节大小与字符串长度
- java - 为什么将 TextField 添加到我的 JavaFX 会导致多个异常?