折腾:
【未解决】Selenium中Python解析百度搜索结果第一页获取标题列表
期间,接着要去搞清楚:
如何用Selenium,去实现,查询定位到,百度搜索结果中每一条的title标题的元素。
【整理】用Chrome或Chromium查看百度首页中各元素的html源码
好了,可以去想办法写代码,获取每条结果的内容了。至少先获取到标题的文字。
先去看看此处,Selenium中,有何函数可用,用来获取元素内容。
看自己的教程
“* 属性
* id
* location
* parent
* rect
* screenshot_as_png
* size
* text
* tag_name”
是可以获取到text的
去看看
不过先要搞清楚,如何定位查找到这些搜索结果
对于想要找搜索标题,看起来是需要:
找到
1 2 | <h3 class= "t" > <h3 class= "t c-title-en" > |
下面的a元素
然后才能获取到a的href链接地址
和内部的值:
1 2 | < em >crifan</ em > – 在路上 < em >crifan</ em > (< em >Crifan</ em > Li) · GitHub |
看了下,感觉是用xpath更合适?
直接h3定位,要额外支持class中包含t才行,好像不好写语法
用xpath的话,class要支持contain写法
xpath contains text
试了试:
1 2 3 | # get search result item list searchResultList = chromeDriver.find_elements_by_xpath( "//h3[contains(@class, 't')]/a" ) print ( "searchResultList=%s" % searchResultList) |
真的可以搜到:

那继续写代码
继续获取a的href属性试试
1 2 | lement = driver.find_element_by_name(self.locator) return element.get_attribute( "value" ) |
去试试:get_attribute
1 2 3 4 5 6 | for curIdx, curSearchResultAElem in enumerate (searchResultAList): print ( "%s [%d] %s" % ( "-" * 20 , curIdx, "-" * 20 )) aHref = curSearchResultAElem.get_attribute( "href" ) print ( "aHref=%s" % aHref) aText = curSearchResultAElem.text print ( "aText=%s" % aText) |
即可。
期间遇到:
【已解决】Selenium调试时能搜到元素但是直接运行找不到

可以获取到href值:
1 | aHref = http: / / www.baidu.com / link?url = LMF5vQH - QgOuEhaq5huV3bLHlwVSDbVwv2g6vUYJ9AjmaCyIWKuL8f1YR5uOGzUc |

也能获取到 当前搜索结果的title的text:
1 | aText=在路上on the way - 走别人没走过的路,让别人有路可走 |
所以是可以实现所需效果的:
获取到搜索结果的每一条的标题的文字(和链接地址)
【总结】
此处最终用:
1 2 3 4 5 6 7 8 9 | # get search result item list searchResultAList = chromeDriver.find_elements_by_xpath( "//h3[contains(@class, 't')]/a" ) print ( "searchResultAList=%s" % searchResultAList) for curIdx, curSearchResultAElem in enumerate (searchResultAList): print ( "%s [%d] %s" % ( "-" * 20 , curIdx, "-" * 20 )) aHref = curSearchResultAElem.get_attribute( "href" ) print ( "aHref=%s" % aHref) aText = curSearchResultAElem.text print ( "aText=%s" % aText) |
定位到:
百度搜索结果中每一条的标题文字和链接地址。
转载请注明:在路上 » 【已解决】Selenium中如何实现百度搜索结果标题元素的定位