昨天的库找不到文本定位方法,今天换一个库。
一、报错WebDriverException: 'geckodriver' executable needs to be in PATH.
1、https://www.cnblogs.com/lvzuwen/p/7309341.html
2、火狐浏览器需要网上下载geckodriver,这给出Windows64位下载地址:https://pan.baidu.com/s/1gfP8CON
3、Windows下,下载好软件直接解压,然后复制geckodriver.exe(或chromedriver.exe)到任何已添加到【环境变量的文件夹】比如下图的:C:Python36 等文件夹。
二、报错SessionNotCreatedException: Unable to find a matching set of capabilities找不到匹配的功能集
1、更新最新版火狐
三、报错WebDriverException: newSession
1、下载最新geckodriver-v0.27.0-win64.zip放入环境变量
2、https://github.com/mozilla/geckodriver/releases
四、OK能打开网页了。测试1:
#selenium基本知识
from selenium import webdriver
from bs4 import BeautifulSoup
#初始化浏览器
driver = webdriver.Firefox()
#打开某个网址
driver.get('https://baidu.com')
五、测试2:
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
print('Before search================')
# 打印当前页面title
title = driver.title
print(title)
# 打印当前页面URL
now_url = driver.current_url
print(now_url)
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
sleep(1)
print('After search================')
# 再次打印当前页面title
title = driver.title
print(title)
# 打印当前页面URL
now_url = driver.current_url
print(now_url)
# 获取结果数目
user = driver.find_element_by_class_name('nums').text
print(user)
#关闭所有窗口
driver.quit()
六、测试3:CSDN Python selenium实现自动爬取实例
# coding:utf-8
import sys
import os
from selenium import webdriver
from bs4 import BeautifulSoup as bs
import xlrd
import csv
os.chdir(r'C:UsersAdministratorDesktop')
sys.setrecursionlimit(9000) # 设置最大递归深度为9000
# 自动获取电影的评论数
# para:电影名
def getRemark(movie_name):
option = webdriver.Firefox()
# option.add_argument('head')#“有头”模式,即可以看到浏览器界面,若要隐藏浏览器,可设置为 "headless"
dr = webdriver.Firefox()#得到操作对象
dr.get('https://movie.douban.com/')#打开豆瓣电影
dr.find_element_by_id('inp-query').send_keys(movie_name)#找到输入框并填写电影名
dr.find_element_by_class_name('inp-btn').click()#找到搜索按钮并点击
try:
dr.find_element_by_partial_link_text(movie_name).click()#找到包含电影名的最近链接并点击,打开电影具体信息页面
soup = bs(dr.page_source, 'lxml')#page_source得到当前网页的源代码
dr.quit()#关闭浏览器
return soup.select_one('.rating_sum').text
except:
return 'null'
# 将信息写入csv文件
def write(name):
count = getRemark(name)
print(name, count)
with open('remark.csv', 'a ', newline = 'n')as f:
w = csv.writer(f)
w.writerow([name, count])
if __name__ == '__main__':
names = ['战狼2', '红海行动']#电影名列表
print('----------------------开始自动化测试------------------------')
for n in names:
write(n)
print('--------------------测试完成-----------------------------------------')
七、接下去要做的
1、给一个网址
2、给一个定位
3、采集内容并保存到csv中