admin 管理员组文章数量: 887021
一、安装Chromedriver以及pip安装selenium库
$brew cask install chromedriver
$pip install selenium
二、应用selenium库完成百度搜索
from selenium import webdriver
from selenium.webdrivermon.keys import Keys # 模拟键盘的库
driver = webdriver.Chrome()
driver.get('http://www.baidu')
assert "百度" in driver.title
#定位搜索框,并输入搜索值后进行回车
input_element = driver.find_element_by_id('kw')
input_element.send_keys('Python')
input_element.send_keys(Keys.RETURN) #此处也可以用input_element.submit()
安装完成Homebrew后,利用Chrome及其get方法。运行这段代码会自动弹出Chrome浏览器,并进行操作。
三、遍历显示百度搜索页面结果
直接复制粘贴Xpath,并使用find_elements_by_xpath()方法
yes = driver.find_elements_by_xpath('//*[@id="1"]/h3/a[0]')
print(yes)
发现返回的是空的列表。
原因在与百度搜索是异步加载的,也就是说框架不会因为翻页面会变化,只变化其中的内容,因此直接复制粘贴找到的是空壳儿,只能返回空的列表,这样也能够解释为什么输入完搜索值后会有一定的页面加载延迟。
那么有一种办法是利用Beautifulsoup库,具体请参照用Selenium进行百度搜索结果简单提取
在网上搜索过程中,发现selenium爬去异步加载的百度搜索是非常困难的,不能通过简单的加长等待时间就可以获得请求,因此可以选用request库,直接获得完整文档,再进行解析。
于是换了一种思路,直接去get第一页的链接
driver = webdriver.Chrome()
driver.get('https://www.baidu/s?wd=python&pn=0&oq=python&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=a12270f200017a02&rsv_t=a24ehBKdy2T0nefC0TLoTOzAugzKl6A07Fyhn8mxd%2B6GWOGumzUtCid%2FDOo')
assert "百度" in driver.title
for a in driver.find_elements_by_xpath('//*[@id]/h3/a'):
print(a.text)
print(a.get_attribute('href'))
得到如下结果:
Welcome to Python
http://www.baidu/link?url=hgdxPGw17LUtZzsZsoba1XEMzBt_0M7D112GXlpa93bq8D1_5ochLss6szbskkVx
官网
http://trust.baidu/vstar/official/intro?type=gw
Python 基础教程 | 菜鸟教程
http://www.baidu/link?url=K2c4GNgSXMe2PVTGupzp35NN5Owgor-Is0xVi8u2DXKMlG_m0MK2erM16n0N376yK2TUHhOfWRnBzS-5k-iA_a
Python教程 - 廖雪峰的官方网站
http://www.baidu/link?url=NW5xCNl9ubbZ8FuVln7WbCVzPCds-8qgVzkbWGR7xyaopah5ju9Woiz3_K8m6BKbnP4F1z0dbEQsxfWF-XmR-3uf9NX7blnGlnMV-bqqKuBC4riNJYZZGuy6122iFoT_
Python(计算机程序设计语言)_百度百科
http://www.baidu/link?url=bX6N6Yk6mlOwEqgn-rP1S9f1rnZT3hxL-UkTxJ4UoBzgY6MuodoaJtc1i1CuqD5p
python的最新相关信息
http://www.baidu/link?url=C2JYsQuK10NnCM1JR_ZkD7P_c957fpWJ_7wVqk3rkUjzHraxrWnp3pEpe0WjzZG-PRY-VkTGiSQIdgj0MDlfWDqy9S7HC3s9h276Sa9U2aq
调查显示开发者最讨厌 PHP,最爱 Python - 开源中国
http://www.baidu/link?url=38ZYSzA5eRrYS1ISdje-CXIq4DZkO2k0jFk0EOEuAHmjNrFR5qRb09GT12i6wuZtYTABCGl1h7h22TwxQ6szVgAHI96zm4zOxQ8ugvNbiQUs6MhUXcactoewXwi5scYV
北京python机器学习培训老师-中科信软高级技术培训
http://www.baidu/link?url=8yhOvCjnPCnSp-ALv2P33cZZJWuBoypRMozlL3-gMb9IteGl_PcPEPRPpJAAooExLHUeb27Et0fYGXZ2BFmQDq
Download Python | Python
http://www.baidu/link?url=W1f4RQyvlG_tuJj_0OPKFaj5ovTEl__sP3xI_jO-JRrD4XsIcbbCDYYh8xuMAu1z
Python 简介 | 菜鸟教程
http://www.baidu/link?url=zckhtrmRo1NzwNfvL39Wmt4t5jcNZ8QwYyQze352R7afqLPr8ieafCk1uJf0sPT3m5ew7yAKXJWEMmu2aFdVA_
python吧-百度贴吧--python学习交流基地。--这里有一群python爱好...
http://www.baidu/link?url=KRwki0r8nY9kBEKdYHSqe4NKM5YRkpnxgJNJ72PjViqhu5yvF1Hwu7N8QcYg_7MP
Process finished with exit code 0
链接https://www.baidu/s?wd=python&pn=0&oq=python&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=a12270f200017a02&rsv_t=a24ehBKdy2T0nefC0TLoTOzAugzKl6A07Fyhn8mxd%2B6GWOGumzUtCid%2FDOo中,注意到了pn=0,手动跳转下一页变成了pn=10,因此可以尝试以10倍改变pn这个值达到全网爬取的效果
尽管最后的方法避开了提交关键字的过程,但是也能够暂时实现了最终目的,增加if语句,是可以达到实时的效果的。
本文标签: 搜索结果 百度搜索 Mac selenium python
版权声明:本文标题:[Python+Selenium]Mac OS下应用Homebrew完成Chromedriver安装以及使用selenium完成百度搜索并显示搜索结果 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726434345h959928.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论