为了账号安全,请及时绑定邮箱和手机立即绑定

Python Beautiful Soup 返回无类型

Python Beautiful Soup 返回无类型

HUH函数 2022-10-25 10:40:51
我正在尝试开发一个程序,可以为英雄联盟中的特定冠军获取符文。这是我的代码:import requestsimport refrom bs4 import BeautifulSoupurl = 'https://www.leagueofgraphs.com/zh/champions/builds/darius'response = requests.get(url).textsoup = BeautifulSoup(response,'lxml')tables = soup.find('div',class_ = 'img-align-block') print(tables)这是原始的 HTML 文件:<img src="//cdn2.leagueofgraphs.com/img/perks/10.8/64/8010.png" alt="征服者" tooltip="<itemname><img src=&quot;//cdn2.leagueofgraphs.com/img/perks/10.8/64/8010.png&quot; width=&quot;24&quot; height=&quot;24&quot; alt=&quot;征服者&quot; /> 征服者</itemname><br/><br/>基礎攻擊或技能在命中敵方英雄時獲得 2 層征服者效果,持續 6 秒,每層效果提供 2-5 適性之力。 最多可以疊加 10 次。遠程英雄每次普攻只會提供 1 層效果。<br><br>在疊滿層數後,你對英雄造成的 15% 傷害會轉化為對自身的回復效果(遠程英雄則為 8%)。" height="36" width="36" class="requireTooltip">我无法访问这部分并对其进行解析,也无法找到 IMG src。但是,我可以在他们的网站上浏览这个。我该如何解决这个问题?
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

您感兴趣的部分不在 HTML 中。您可以通过搜索仔细检查:


soup.prettify()

网站的某些部分可能加载了 JavaScript,因此您可以使用打开浏览器并访问该页面的代码。例如,您可以使用硒


from selenium import webdriver

import time


driver = webdriver.Firefox()

driver.get(url)

time.sleep(6)  # give the website some time to load

page = driver.page_source


soup = BeautifulSoup(page,'lxml')

tables = soup.find('div', class_='img-align-block') 

print(tables)


查看完整回答
反对 回复 2022-10-25
?
跃然一笑

TA贡献1826条经验 获得超6个赞

尝试User-Agent在headers您的请求上设置 a ,没有它,网站会发送不同的内容,即:


import requests

from bs4 import BeautifulSoup


url = 'https://www.leagueofgraphs.com/zh/champions/builds/darius'

h = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0"}

response = requests.get(url, headers=h).text

soup = BeautifulSoup(response,'html.parser')

images = soup.find_all('img', {"class" : 'mainPicture'})

for img in images:

    print(img['src'])

//cdn2.leagueofgraphs.com/img/perks/10.8/64/8010.png

//cdn2.leagueofgraphs.com/img/perks/10.8/64/8010.png

//cdn2.leagueofgraphs.com/img/perks/10.8/64/8230.png

//cdn2.leagueofgraphs.com/img/perks/10.8/64/8230.png

//cdn2.leagueofgraphs.com/img/perks/10.8/64/8230.png


查看完整回答
反对 回复 2022-10-25
?
狐的传说

TA贡献1804条经验 获得超3个赞

网站使用 JavaScript 处理,所以需要使用 Selenium 或者其他支持 JS 加载的抓取工具。



查看完整回答
反对 回复 2022-10-25
  • 3 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号