【发布时间】:2021-03-18 06:09:10
【问题描述】:
我必须在红框内获得价值。我尝试了这些代码,但每次我尝试新的东西时,它都会给我不相关的答案或异常。网站正在使用 js 加载内容。当我尝试检查 f12 时,我可以看到 html,但我无法使用此代码scrape 内容。
from selenium import webdriver
import time
import bs4
chromedriver = 'D:\webdriverchrome\chromedriver.exe'
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('window-size=1200x600')
browser = webdriver.Chrome(executable_path=chromedriver,
chrome_options=options)
browser.get('website')
time.sleep(4)
girisyap = browser.find_element_by_xpath('//*[@id="sign-in-link"]')
time.sleep(3)
girisyap.click()
time.sleep(2)
username = browser.find_element_by_name("loginUsername")
password = browser.find_element_by_name("loginPassword")
username.send_keys("id")
time.sleep(1)
password.send_keys("password")
time.sleep(1)
girrisyap = browser.find_element_by_xpath('//*
[@id="login"]/div/div/form/div/div/button')
girrisyap.click()
time.sleep(3)
browser.get('logginedwebsite')
time.sleep(15)
innerHTML = browser.execute_script("return document.body.outerHTML")
# html = browser.find_element_by_tag_name('html').get_attribute('innerHTML')
root = bs4.BeautifulSoup(innerHTML, "lxml")
#print(root)
viewcount = root.find_all("span", attrs={'class':'value--2NhHD'})
for span in viewcount:
print(span.string)
driver.quit()
这就是输出
Process finished with exit code 0
如果我打印 root,我可以看到一堆 html 代码,但我的值没有任何内容
这个 html 代码是一些 html 代码,当我在登录的网站上使用检查模式时,在 html 和 body 标记内。我想要整个 html 代码中的 26 值。这些值也每 30 秒或 1 分钟更改一次。所以过了一会儿,“26”变成了第二个值。
<div class="numbers--3CyTT recent-number--2rGeB fadeable--1SHS1 all-numbers--1Jc4s">
<div class="number-container--1mKjk recent-number--2E5Lw" data-role="recent-number">
<div data-role="number-26" class="single-number--2nKGX black--2ZXP1 align-middle--30M6J first--2gxHs animate--f-O-R">
***<span class="value--2NhHD">26</span>*** #Need that line
</div></div><div class="number-container--1mKjk recent-number--2E5Lw" data-role="recent-number">
<div class="number-container--1mKjk recent-number--2E5Lw" data-role="recent-number"><div data-role="number-1" class="single-number--2nKGX red--3noFd align-middle--30M6J first--2gxHs animate--f-O-R"><span class="value--2NhHD">1</span></div></div>
【问题讨论】:
-
不要将代码发布为图像 - 这会使 Stack Overflow 社区更难调试您的问题。相反,将代码的相关部分粘贴到问题的正文中,就像您对 Python sn-p 所做的那样。另见:Why not upload images of code on SO when asking a question?
-
第二个
value--2NhHD课程你需要那个吗? -
不,我只需要第一个整数值。同一类不同的值更多
-
你能在
browser.get('website') time.sleep(4)之后打印browser.page_source吗?看看值是否存在 -
我更改了代码略有不同,现在我可以看到 html 代码,但它们都不是我想要的。我猜想 js 让获取它变得更加困难。
标签: python web-scraping beautifulsoup