【发布时间】:2022-11-12 08:04:39
【问题描述】:
我一直在尝试抓取网页并将一些详细信息放入 excel 或 CSV 中。但由于页面有Mehr Anzeigen,在德语中是“显示更多”,因此无法获取所有内容。
网址:https://www.gelbeseiten.de/suche/architekturb%c3%bcros/aachen?umkreis=21000
From the above ``URL`` I would like to extract:
<h2> class='Title',
<address> class= 'mod-AdresseKompakt'
<adress> class= 'nbr'
. .
and so on.
几乎我想自动加载所有内容(点击“显示更多”30次很困难) 并从完全加载的网站中提取所有详细信息。
我已经阅读了 Stack-Overflow 和一些博客中的一些可用线程,但对于不同的网站,每个线程都是不同的。
任何帮助都会很棒!
Python: 我对 Python 有一定了解,但对 HTML 和 JS 很陌生。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
path_to_chromedriver = '/Users/kuk/Desktop/chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'https://www.gelbeseiten.de/suche/architekturb%c3%bcros/aachen?umkreis=21000'
browser.get(url)
h2 = browser.find_elements(By.TAG_NAME, 'h2')
for item in h2:
print(item.text)
【问题讨论】:
-
您想从“Mehr Anzeigen”页面获得什么?标题,地址和号码[以及电子邮件和网站]可以从
url本身获得...... -
是的,我还需要电子邮件、电话号码和网站 抱歉,您能解释一下如何获取页面中所有 324 个条目的信息吗?我不明白您的意思是“可以从
url获得”任何示例代码都会有所帮助。 -
抱歉,我将它与“Mehr Details”按钮混为一谈...我已经发布了一个使用 BeautifulSoup 的潜在解决方案,因为我已经有一个 selenium+bs4 scraper 功能以及一个与答案中的非常相似的功能通过 css 选择器从 bs4 标签中获取详细信息,这对我来说更简单;但如果你想要/需要,我也可以添加一个只使用硒的解决方案
-
这真是令人印象深刻的解决方案,感谢您投入时间和精力。您能否也仅与 Selenium 分享解决方案,它在其他情况下会很有用。
-
@Kuladeep-我在我的答案中添加了一个编辑
标签: python html web-scraping