无法处理一些批判性的链接

时间:2017-11-08 17:58:53

标签: python python-3.x selenium selenium-webdriver web-scraping

我已经在python中编写了一个与selenium结合使用的脚本来解析网页中的一些信息。该网页上的商店名称及其链接很少。如果我点击任何一个链接,会弹出一个包含信息的卡片。我的目的是点击每个链接并解析该卡的信息。但是,当我执行我的脚本时,它会抛出显示timeout exception的错误。我甚至将浏览器向下滚动到元素所在的位置,以确定是否因为时间不能点击任何链接。但是,它仍然会抛出相同的错误。我怎么能绕过那个?提前谢谢。

这是指向该网页的链接:Page Link

这是我的尝试:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("above_link")

for item in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "#addresses_list li a"))):
    item.click
driver.quit()

链接所在的元素:

<li style="list-style:none; background-image:url(&quot;https://storelocator.w3apps.co/images/orange.png&quot;); background-repeat:no-repeat; background-position:0px 10px; padding:10px; padding-left:35px; border-bottom:1px dashed #ddd;" onmouseover="hoverStart(601538)" onmouseout="hoverStop(601538)"><a href="#" onclick="focus_and_popup(601538); return false;"><div class="gm_add_name">Adel Outfitters</div>1221 W 4th St <br>Adel Georgia 31620<br><div style="display:none" class="w3-address-country">United States</div>229-896-7105</a><div class="gm_add_distance"></div><a target="_blank" class="directions-link" href="http://maps.google.com/?saddr=+&amp;daddr=1221+W 4th St, Adel, Georgia, 31620">Directions<span class="w3-arrow">➲</span></a></li>

链接位于地图的左侧区域。

1 个答案:

答案 0 :(得分:1)

正如@Grasshopper正确建议您需要切换到Pattern.compile("\\b(?:" + regex + ")\\b") 才能处理链接。尝试

iframe