【发布时间】:2021-04-26 12:31:44
【问题描述】:
所以,我正在尝试获取一些餐馆的 Yelp 页面的“设施和更多”部分。问题是我可以从首先显示的餐厅的 Yelp 页面访问设施。但是,它具有“n more”按钮,单击该按钮可提供更多便利。将 BeautifulSoup 和 selenium 与网页 url 一起使用以及将 BeautifulSoup 与请求一起使用会得到完全相同的结果,我不知道如何在我的代码中获取它们之前打开整个设施。下面的两张图片显示了单击按钮之前和之后发生的情况。
- “在点击“5 更多属性”之前:第一张图片显示了 4 个“div”,其中包含“span”,我可以使用上述任何一种方法。
- “点击“5 更多属性”后:第二张图片显示了 9 个“div”,其中包含我想要到达的“span”。
这是使用 selenium/beautifulsoup 的代码
import selenium
from selenium import webdriver
from bs4 import BeautifulSoup
URL ='https://www.yelp.com/biz/ziggis-coffee-longmont'
driver =
webdriver.Chrome(r"C:\Users\Fariha\AppData\Local\Programs\chromedriver_win32\chromedriver.exe")
driver.get(URL)
yelp_page_source_page1 = driver.page_source
soup = BeautifulSoup(yelp_page_source_page1,'html.parser')
spans = soup.find_all('span')
结果:“spans”中有 990 个元素。我只显示与我的问题相关的内容:
【问题讨论】:
-
注意:不要将变量命名为
all。这将覆盖名为all()的内置函数。
标签: python html selenium web-scraping beautifulsoup