登录
注册
写文章
发现
工具
python+selenium+webdriver用100行代码实现百度搜索
_3t3lfz KEKfID
编辑文章
python+selenium+webdriver用100行代码实现百度搜索
asfx站长
2020.08.17 16:04:30
阅读
775
#### python+selenium+webdriver用100行代码实现基于百度搜索的去广告搜索 这里提供的是一个核心demo示例,更多功能效果就由小伙伴自己去实现啦~~~! ![](//www.asfx.xyz/statics/images/bg/202008/17/e96b93fb174c41b0babaedc1173f16cf.png) ##### python脚本 ```python # -*- coding: UTF-8 -*- # 导入第三方库 from selenium import webdriver # 引入key类包 发起键盘操作 from selenium.webdriver.common.keys import Keys import time def main(kw): # 打开浏览器 driver = webdriver.Chrome() c_title = '' # 标题 try: # 访问网站 百度 site_url = 'https://www.baidu.com' driver.get(site_url) # 输入搜索内容 driver.find_element_by_id('kw').send_keys(kw) # 模拟回车操作,开始搜索 driver.find_element_by_id('su').send_keys(Keys.ENTER) # driver.find_element_by_id('su').click() time.sleep(3) # 解析百度结果,剔除广告 content = driver.find_element_by_id('content_left') # 结果列表 result_list = content.find_elements_by_class_name('c-container') # 遍历搜索结果 for item in result_list: _class = item.get_attribute('class') c_img_src = '' # 图片地址 c_href = '' # 链接 c_abstract = '' # 概要 c_show_url = '' # 展示地址 data_title = item.find_element_by_tag_name('h3').find_element_by_tag_name('a') # 标题 c_title = data_title.text # 链接 c_href = data_title.get_attribute('href') # 百度自己的结果,包含百度百科、百度贴吧 if('result-op' in _class): # 还有百度翻译... # 暂时剔除百度贴吧结果,它没有c-span18样式 try: data_op_abs = item.find_element_by_class_name('c-span18') except: continue c_abstract = item.find_element_by_class_name('c-span18').find_elements_by_tag_name('p')[0].text c_show_url = item.find_element_by_class_name('c-showurl').text else: data_abstract = item.find_element_by_class_name('c-abstract') # 描述 c_abstract = data_abstract.text data_show_url = item.find_element_by_class_name('f13').find_element_by_tag_name('a') c_show_url = data_show_url.text # 获取图片url try: data_img = item.find_element_by_class_name('general_image_pic') c_img_src = data_img.find_element_by_tag_name('img').get_attribute('src') except: c_img_src = '' print('标题:'+c_title) print('链接:'+c_href) print('概要:'+c_abstract) print('来源地址:'+c_show_url) if(c_img_src != ''): print('图片地址:'+c_img_src) print('-------------------------------------------------------------------------') except Exception as e: print(str(e)) print(c_title) finally: # 退出 driver.quit() if __name__ == '__main__': kw = 'python' print('开始搜索:' + kw) print('<<< ========================================== 搜索结果 ========================================== >>>') main(kw) ``` 附chrom版本对应的chromedriver.exe下载地址: http://chromedriver.storage.googleapis.com/index.html 把对应版本下载下来的的chromedriver.exe放到你的python安装根目录下,例如我的是: C:\work\dev\python\python38 查看自己的chrom版本方法,打开谷歌浏览器,地址栏输入:chrome://settings/help 回车就可以看到当前的谷歌浏览器版本号了,例如我的chrome是: 版本 86.0.4240.111(正式版本) (64 位),然后下载的是86.0.4240.22版本的chromedriver.exe 代码执行如果出错一般是由于chromedriver.exe的版本和你当前的chrome的版本冲突了。
我的主页
退出