【发布时间】:2017-12-17 19:26:26
【问题描述】:
我想使用 BeautifulSoup 从以下网址收集代理商电话号码:https://www.cv-library.co.uk/companies/agencies/0-9。
但问题是,我必须先单击一个链接,该链接绑定到一个名为 "contactDetails()" 的 JavaScript 函数才能显示一个数字。我设法使用 Selenium 单击所有链接。但是我现在如何收集这些数字?
那么,我现在应该怎么做才能克服这个问题?
提前致谢。
注意:我是网络抓取的新手。
import requests,bs4
from selenium import webdriver
site_url = "https://www.cv-library.co.uk/companies/agencies/0-9"
#---------------------------------- Opening Firefox with Selenium Webdrivre ---------------
#browser = webdriver.Firefox()
#I need my Firefox browser's current profile for a reason.
profile = webdriver.FirefoxProfile(r"C:\Users\USER\AppData\Roaming\Mozilla\Firefox\Profiles\i27jf7iw.default")
browser = webdriver.Firefox(firefox_profile=profile)
browser.get(site_url)
#---------------------------------- Clicking Phone Buttons ---------------------
phone_btn = browser.find_elements_by_link_text("Phone - Click to View")
for i in range(0,20):
phone_btn[i].click()
【问题讨论】:
-
每个链接
"Phone - click to View"在属性onclick中都有数字(即contactDetails( this, 154513 )),JavaScript 使用该数字从服务器读取电话号码 - 即。https://www.cv-library.co.uk/account-contact-details?id=154513。您可以尝试阅读它,您将不需要 Selenium。
标签: javascript python web-scraping beautifulsoup python-requests