我正在尝试从此网站中删除周年纪念: http://www.presanse.fr/CISME/annuaire.aspx 为了向您显示我需要剪贴的信息,请单击“ tous les services”,然后将显示一个列表,然后单击一个项目(例如AST-BTP),然后将显示一个包含很多信息的页面(我需要全部其中)。 我尝试检查代码,但我发现有<“ div”,class =“ ficheCorneeDetails”>包含此信息,但我无法删除它,我的脚本返回“无” 谢谢您的帮助!
答案 0 :(得分:3)
您需要的信息是使用JavaScript脚本加载的,仅使用刮板发出的请求将无法正常工作。
您将需要使用类似Selenium
的按钮来模拟按钮的点击答案 1 :(得分:0)
要做到这一点,除了美丽的汤外,还需要再添加硒。
1)在https://github.com/mozilla/geckodriver/releases
处下载geckoDriver(火狐)。2)解压缩exe并将其添加到系统路径
3)使用 pip install硒
安装硒4)运行以下命令:
from bs4 import BeautifulSoup
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('http://www.presanse.fr/CISME/annuaire.aspx')
availbutton = driver.find_element_by_id('ctl00_cphMiddle_UC_RechercheParCarte1_linkTousLesServices')
availbutton.click()
time.sleep(2)
html = driver.page_source
soup = BeautifulSoup(html,'lxml')
targetDiv = soup.find_all("div", {"class": "resultatTable"})
targetsoup = BeautifulSoup(str(targetDiv),'lxml')
for span in targetsoup:
print(span.text)
driver.close()
您可以与动态创建之前的元素进行交互,也可以使用button.click()单击DOM元素。我添加了2秒的延迟,以允许加载表,因为我最初仍然空白,没有时间加载它!