我使用selenium和BeautifulSoup從維基百科頁面創建了幾個列表。當我看網頁的源文件,鏈接我想從總是如此構成的信息:使用Python從HTML元素生成列表
<li><a href="/wiki/town_name,_California" title="town_name, California">town_name, state</a></li>
還有就是標籤中的鏈接,你可以對點擊將引導您到鎮上的wiki頁面。它總是/wiki/town_name,_California
我想在Python中使用for循環來找到這個結構的每個項目,但我不清楚如何編寫正則表達式。我想:
my_link = "//wiki//*,California"
和
my_link = "//wiki//*,_California"
但是,當我試圖運行:
br.find_element_by_link_text(my_link)
這些返回類似的錯誤:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"//wiki//*,_California"}
我也試過:
import selenium, time
import html5lib
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
pg_src = br.page_source.encode("utf")
soup = BeautifulSoup(pg_src)
br = webdriver.Chrome()
url = "http://somewikipage.org"
br.get(url)
lnkLst = []
for lnk in br.find_element_by_partial_link_text(",_California"):
lnkLst.append(lnk)
,並得到這個:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"partial link text","selector":",_California"}
有沒有什麼辦法可以解決這個代碼,所以我可以建立我的目標鏈接列表?
你搶頁面的源代碼,湯。循環通過湯的鏈接。 – IamBatman
@IamBatman嘗試了soup.select(「a [href * =,_ California]」)並且得到了ValueError:不支持的無效CSS選擇器「a [href * =」 – ShaunO
@IamBatman得到了這個工作:soup.find_all(「a」 ,href = re.compile(「,_ California」))。感謝您指點我正確的方向。 – ShaunO