前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >selenium采集2020.8.20

selenium采集2020.8.20

作者头像
用户7138673
发布2022-09-21 11:11:38
4130
发布2022-09-21 11:11:38
举报
文章被收录于专栏:大大的小数据

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

一、报错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:\Users\Administrator\Desktop')

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中

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大大的小数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档