我使用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