我在使用bs4时遇到问题,只能在html中找到一些东西。具体来说,当我尝试打印span.nav2__menu-link-main-text时,它选择它并打印它没有问题,但是当我尝试选择页面的其他部分时,它可能选择了它,但它不想打印出来。这是打印的代码和不打印的代码:
尝试使用除lxml以外的其他解析器,但均无效。
Map<String, User>
我希望该程序打印div.value-dispaly__value的当前值 但是当我启动程序时,它甚至无法打印任何内容。当我检查页面时,我看到的值是4000。
答案 0 :(得分:0)
似乎您愿意获取的代码是通过javascript动态添加到网页中的。
为了更新Web js部分,您必须使用$r = $roman.comb().reverse.map({%roman2num{$_}}).reduce( -> $sum, $b {
state $last = $sum;
$b;
LEAVE { $last = $b };
$sum + (($last <= $b)*2-1) * $b;
});
is $r, $number, "Roman $roman $r- way 2";
requests
函数。
答案 1 :(得分:0)
网站'https://osu.ppy.sh/users/12008062'
页面是用于获取数据的javascript请求呈现,因此您需要使用selenium
之类的自动化库。根据浏览器要求下载Selenium Web驱动程序。
下载适用于Chrome浏览器的Selenium Web驱动程序:
http://chromedriver.chromium.org/downloads
为Chrome浏览器安装Web驱动程序:
https://christopher.su/2015/selenium-chromedriver-ubuntu/
硒教程:
https://selenium-python.readthedocs.io/
将代码替换为此:
from selenium import webdriver
from bs4 import BeautifulSoup
import time
driver = webdriver.Chrome('/usr/bin/chromedriver')
driver.get('https://osu.ppy.sh/users/12008062')
time.sleep(3)
soup = BeautifulSoup(driver.page_source, 'lxml')
for i in soup.find_all('div',{"class":"value-display__value"}):
print(i.get_text())
O / P:
#47,514
#108
11d 19h 49m
44
4,000
11d 19h 49m
44
4,000
#47,514
#108
0
0