selenium采集2020.8.20

2022-09-21 11:11:38 浏览数 (1)

昨天的库找不到文本定位方法,今天换一个库。

一、报错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中

0 人点赞