我正在尝试点击“detail_search_button”并选中“판매중인차량”复选框。但是当我试图找到“detail_search_button”时,问题就发生了。
我在BeautifulSoup中使用了“find”功能,如下所示:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
from time import sleep
link = 'http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I'
driver = webdriver.PhantomJS()
driver.set_window_size(1920, 1080)
driver.get(link)
sleep(.75)
soup = BeautifulSoup(driver.page_source, "html.parser", from_encoding='utf-8')
# detail search open
detail_search = soup.find('img', alt='상세검색')
print(detail_search)
结果如下:
<img alt="상세검색" class="pointer" id="detail_search_btn" src="http://image.bobaedream.co.kr/renew/images/common_re/btn_search01.gif" title="상세검색열기">
<img alt="검색" class="pointer mr" id="search_click" src="http://image.bobaedream.co.kr/renew/images/common_re/btn_search02.gif" title="검색"> <span class="result" style="padding:0 5px 0 0;"><strong>181,959</strong>대</span> </img></img>
我想要的结果只是没有第二个按钮的第一个按钮,img alt =“검색”....
然后,我想点击“판매중인차량”的复选框。
请给我一个建议。
感谢。
答案 0 :(得分:0)
尝试更改此行:
detail_search = soup.find('img', {'alt':'상세검색'})
为:
attrs
查找的签名是:
find(name,attrs,recursive,string,** kwargs)
其中swift3
是字典,它将属性名称作为键,值作为值。你可以在这里参考文档:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find
答案 1 :(得分:0)
你看到两个img
的原因是因为一个嵌套在另一个中:
<img alt="상세검색" class="pointer" id="detail_search_btn" src="http://image.bobaedream.co.kr/renew/images/common_re/btn_search01.gif" title="상세검색열기">
<img alt="검색" class="pointer mr" id="search_click" src="http://image.bobaedream.co.kr/renew/images/common_re/btn_search02.gif" title="검색">
<span class="result" style="padding:0 5px 0 0;">
<strong>181,966</strong>대</span>
</img>
</img>
事实上,find
永远不会找到多个节点,如果您要搜索多个节点,请使用find_all
。
要访问父img
的属性,请使用attrs
属性,例如像这样:
img = soup.find('img', alt='상세검색')
src = img.attrs['src']
尝试使用print(img.attrs)
查看您拥有的属性。
然后,我想点击&#34;판매중인차량&#34;的复选框。
我无法在文档中找到与판매중인차량
匹配的内容,因此我需要猜测:如果您想按标题搜索所有复选框,请使用此选项:
soup.find('input', type="checkbox", title="개인")