Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';使用selenium在Python上进行WebScrap时找不到div类_Python_Selenium_Xpath_Beautifulsoup_Python Requests - Fatal编程技术网

Can';使用selenium在Python上进行WebScrap时找不到div类

Can';使用selenium在Python上进行WebScrap时找不到div类,python,selenium,xpath,beautifulsoup,python-requests,Python,Selenium,Xpath,Beautifulsoup,Python Requests,我会先说我见过类似的问题,但没有一个解决方案对我有效 所以我在我的html页面中寻找一个特定的类,但我总是得到一个None值返回。我在这里看到一些帖子描述了同样的问题,但是没有一个解决方案对我有效。这里是我的尝试-我正在寻找球员标签与他们的名字,即 我尝试了另一种方法来查找匹配项,但仍然没有返回任何结果: match = soup.find("div", {"class": "css-gu7inl"} # Print match is None html文件似乎不包含所有网页,因此我尝试使用s

我会先说我见过类似的问题,但没有一个解决方案对我有效

所以我在我的html页面中寻找一个特定的类,但我总是得到一个None值返回。我在这里看到一些帖子描述了同样的问题,但是没有一个解决方案对我有效。这里是我的尝试-我正在寻找球员标签与他们的名字,即

我尝试了另一种方法来查找匹配项,但仍然没有返回任何结果:

match = soup.find("div", {"class": "css-gu7inl"} # Print match is None
html文件似乎不包含所有网页,因此我尝试使用selenium,正如我在类似帖子中看到的建议,但仍然没有得到任何结果:

driver = webdriver.Chrome("chromedriver")
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')
items=soup.select(".css-gu7inl")
print(items) # Empty list

我在这里做错了什么?

数据由java脚本呈现,因此诱导
WebDriverWait
(),并等待元素使用位于
的所有元素的
可见性可见()

输出

['chase young', 'jeff okudah', 'derrick brown', 'isaiah simmons', 'joe burrow', "k'lavon chaisson", 'jedrick wills', 'tua tagovailoa', 'ceedee lamb', 'jerry jeudy', "d'andre swift", 'c.j. henderson', 'mekhi becton', 'mekhi becton', 'patrick queen', 'henry ruggs iii', 'henry ruggs iii', 'javon kinlaw', 'laviska shenault jr.', 'yetur gross-matos']

代码1帮助您查看来自服务器的响应。 此响应包含服务器发送的HTML代码。 使用其他代码分析此代码的响应(来自服务器的HTML代码),并分离所需的类

==================================================

import requests #CODE1
from requests_toolbelt.utils import dump

resp = requests.get('http://kanoon.ir/')
data = dump.dump_all(resp)
print(data.decode('utf-8')) 
===================================================

import requests #CODE1
from requests_toolbelt.utils import dump

resp = requests.get('http://kanoon.ir/')
data = dump.dump_all(resp)
print(data.decode('utf-8')) 
代码的输出:HTML代码:

< GET / HTTP/1.1

< Host: kanoon.ir

< User-Agent: python-requests/2.23.0

< Accept-Encoding: gzip, deflate

< Accept: */*

< Connection: keep-alive

< 
     ...
===================================================

import requests #CODE1
from requests_toolbelt.utils import dump

resp = requests.get('http://kanoon.ir/')
data = dump.dump_all(resp)
print(data.decode('utf-8')) 

您为第二部分编写的代码(用于分析和HTML代码分离)取决于您的创造力。

我检查了selenium方法,它确实给出了您想要的结果,您在这方面面临什么问题?我不确定为什么它对您有效。。我重新运行了代码,但仍然得到一个空列表我想下面的答案应该可以,基本上你需要等到浏览器加载所有内容,然后你需要解析HTML,从中获取内容。可能是当你从你的代码中点击时,它仍然在加载内容,这就是为什么你没有得到你的div的结果。这很有效!你能解释一下你的代码是怎么做的吗?这仅仅是因为我导入页面时,它没有完全呈现吗?@StevenCunden:是的,你很正确。你需要使用显式等待来正确加载元素。