BS4仅打印网页的某些部分时出现问题

时间:2019-05-30 18:12:38

标签: python beautifulsoup

我在使用bs4时遇到问题,只能在html中找到一些东西。具体来说,当我尝试打印span.nav2__menu-link-main-text时,它选择它并打印它没有问题,但是当我尝试选择页面的其他部分时,它可能选择了它,但它不想打印出来。这是打印的代码和不打印的代码:

尝试使用除lxml以外的其他解析器,但均无效。

Map<String, User>

我希望该程序打印div.value-dispaly__value的当前值 但是当我启动程序时,它甚至无法打印任何内容。当我检查页面时,我看到的值是4000。

2 个答案:

答案 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