我试图让自己搜索临时公寓变得容易一些,但是一个包含这些公寓列表的网站要求我在点击提交之前从他们的下拉列表中选择一个建议。无论搜索框中的条目多么完整
这里的最终希望是,我可以获得搜索结果,然后从每个列表中提取联系人信息。我能够使用Beautiful soup和请求从列表中提取所需的数据,但我必须将特定列表的URL粘贴到我的代码中。我没走那么远。如果有人对如何绕过登录页访问相关列表有建议,请让我知道
我试着将城镇名称和州名称拼接到地址栏中,通过查看成功搜索后的书写方式,但没有成功
这是我的密码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()
webpage = r"https://mein-monteurzimmer.de"
print('Prosim vnesi zeljeno mesto') #Please enter the town to search
searchterm = input()
driver.get(webpage)
sbox = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div/input")
sbox.send_keys(searchterm)
ddown = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")
ddown.select_by_value(1)
webdriver.wait(2)
#select = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")
submit = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/button")
submit.click
当我检查搜索框时,在输入文本之前,我无法找到任何与建议相关的内容。然后我就不能点击HTML代码了,因为这否定了这些建议。这很令人沮丧
以下是一个屏幕截图:
所以我在盲目地选择一些东西
这里的错误是:
AttributeError:'FirefoxWebElement'对象没有“按值选择”属性
我用select做了一些尝试,但我的尝试方式不起作用
我被难住了,我能找到的解决方案是针对谷歌或亚马逊等其他网站的,如果是这样的话,我就没有意义了
有人知道我怎样才能做到这一点吗
下面是从列表中获取信息的代码,我必须对其进行扩展以获取其他数据:
import bs4, requests
def getMonteurAddress(MonteurUrl):
res = requests.get(MonteurUrl)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
elems = soup.select('section.c:nth-child(4) > div:nth-child(2) > div:nth-child(2) > dl:nth-child(1) > dd:nth-child(2)')
return elems[0].text.strip()
address = getMonteurAddress('https://mein-monteurzimmer.de/105742/monteurzimmer/deggendorf-monteurzimmer-deggendorf-pensionfelix%40googlemailcom')
print('Naslov je ' + address) #print call to see if it gets the right data
正如您输入后所看到的,这里有一个正在创建的div列表。现在需要为这些div获取有效的定位器。要获取这些创建的div的定位器,您需要在调试暂停模式(F12>;Source Tab>;F8)下检查元素
请尝试使用下面的代码,在键入时选择第一个匹配的地址
注意:如果有多个匹配地址,将选择第一个地址
相关问题 更多 >
编程相关推荐