【发布时间】:2020-01-14 21:04:45
【问题描述】:
我将以下代码保存到本地 html 文件中
<object id="PriceAdvisorFrame" type="image/svg+xml" data="https://www.kbb.com/Api/3.9.448.0/71071/vehicle/upa/PriceAdvisor/meter.svg?action=Get&intent=buy-used&pricetype=Private Party&zipcode=99517&vehicleid=439604&hideMonthlyPayment=True&condition=verygood&mileage=11795" style="width: 100%;"></object>
当它在 chrome 浏览器中执行时,我试图从 html 中提取成本。我试图解析的 Html 代码如下所示。但是,当使用 selenium 请求文件时,此代码不会出现。
<text xmlns="http://www.w3.org/2000/svg" text-anchor="middle" font-size="14" font-weight="700" fill="#333333" y="-8">$27,938</text>
<text xmlns="http://www.w3.org/2000/svg" text-anchor="middle" font-size="14" font-weight="400" fill="#333333" y="-26">Private Party Value</text>
<text xmlns="http://www.w3.org/2000/svg" text-anchor="middle" font-size="20" font-weight="700" fill="#ffffff" y="-48">$26,995 - $28,888</text>
<text xmlns="http://www.w3.org/2000/svg" text-anchor="middle" font-size="14" font-weight="400" fill="#ffffff" y="-68.8">Private Party Range</text>
到目前为止,这是我的代码:
options = webdriver.ChromeOptions()
options.add_argument('headless')
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36'
options.add_argument('user-agent={0}'.format(user_agent))
driver = webdriver.Chrome(chrome_options=options)
driver.get('file:///F:/Onedrive/Python/KBB/test.html')
print(driver.find_element_by_css_selector('text').text)
关于如何进行这项工作的任何想法?
【问题讨论】:
-
不能直接从 url
https://www.kbb.com/...获取数据吗?也许你不需要Selenium但requests它会工作得更快。但请记住使用&amp;而不是&amp;
标签: python html selenium beautifulsoup