【问题标题】:BeautifulSoup and Selenium cannot find div or text on websiteBeautifulSoup 和 Selenium 在网站上找不到 div 或文本
【发布时间】:2020-06-16 17:54:19
【问题描述】:

我正在尝试使用 BeautifulSoup 或 Selenium 在 betexplorer(下面的链接)上获取 Head to Head 文本或其 div,但努力没有结果。如果我通过按 ctrl+U 在 chrome 上查看源代码,我可以清楚地看到它。但是转到 VsCode 然后运行下面的脚本似乎没有显示转储源上的文本或 div。

这是我的代码

美汤版

from bs4 import BeautifulSoup
import requests 

def getlistings(listingurl):
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'} # fetching the url,
    response = requests.get(listingurl, headers=headers) 
    soup = BeautifulSoup(response.text, "html.parser")
    print(soup)

getlistings("https://www.betexplorer.com/soccer/armenia/first-league/shirak-gyumri-2-lernayin-artsakh/E3lQ7tzK/")

硒版

from Selenium import webdriver

import time

driver=webdriver.Firefox()

driver.implicitly_wait(3)

driver.get("https://www.betexplorer.com/soccer/armenia/first-league/shirak-gyumri-2-lernayin-artsakh/E3lQ7tzK/")

js = driver.page_source

print(js)

提前致谢。

【问题讨论】:

标签: javascript python selenium beautifulsoup


【解决方案1】:

我假设您想要<head></head> 之间的内容。您可以通过.get_attribute('innerHTML') 获得此信息。评论了原始答案,因为我误解了您的意思是“头对头”大声笑。查看更新。

from Selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import time

driver=webdriver.Firefox()

driver.implicitly_wait(3)

driver.get("https://www.betexplorer.com/soccer/armenia/first-league/shirak-gyumri-2-lernayin-artsakh/E3lQ7tzK/")

#head_inner_text_element = driver.find_element_by_xpath("//head")
#head_inner_text = head_inner_text_element.get_attribute('innerHTML')

#print(head_inner_text)

a = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='list-tabs list-tabs--secondary']//li//span[contains(text(), 'Head-to-head')]")))

print(a.text)

click_mutual = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(
(By.XPATH, "//div[@id='mutual_div']//a[@href='javascript:void(0);']")))
click_mutual.click()

【讨论】:

  • 同样的问题。它不工作。如果您访问该网站,我将不胜感激,向下滚动到一个名为“头对头”的子标题。那是我想要得到的 div 头。您的代码只是从页面中打印出一些 javascript 和不需要的 html。我不知道为什么获取该网站的标签或文本是个大问题。感谢您的努力
  • 哇。有效。尽管您忘记“取消注释” driver.get。你能指导我更好地理解代码吗?我打算在'Head-toHead'中获取div id,然后点击页面上的显示相互匹配。请指出我所需的资源。谢谢
  • @asklearner 我附上了一张图片。包含“Head-toHead”的 div 没有 id 属性。我将添加几行来单击相互匹配链接。
  • 谢谢乔尔特加。我想通了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 2018-05-11
  • 1970-01-01
相关资源
最近更新 更多