selenium

WebDriverException: unknown error: unable to discover open pages error with ChromeDriver 80.0.3987.106 and Chrome 80.0.3987.122

元气小坏坏 提交于 2021-02-13 05:40:14
问题 My local windows 10 computer update auto chrome version to 80.0.3987.122 (Build officiel) (64 bits) I use https://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_win32.zip but now I have this error: Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System

爬虫实战(二) 用Python爬取网易云歌单

夙愿已清 提交于 2021-02-12 18:54:34
最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 “用技术改变生活” 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇文章,我们就来讲讲怎样爬取网易云歌单,并将歌单按播放量进行排序,下面先上效果图 1、用 requests 爬取网易云歌单 打开 网易云音乐 歌单首页,不难发现这是一个静态网页,而且格式很有规律,爬取起来应该十分简单 按照以前的套路,很快就可以写完代码,无非就是分为下面几个部分: (1)获取网页源代码 这里我们使用 requests 发送和接收请求,核心代码如下: import requests def get_page(url): # 构造请求头部 headers = { 'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } # 发送请求,获得响应 response = requests.get(url=url,headers=headers) # 获取响应内容 html = response.text return html (2)解析网页源代码 解析数据部分我们使用 xpath(对于 xpath

爬虫(七)图片懒加载技术、selenium和PhantomJS

给你一囗甜甜゛ 提交于 2021-02-12 06:56:10
动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests from lxml import etree if __name__ == "__main__": url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #获取页面文本数据 response = requests.get(url=url,headers=headers) response.encoding = 'utf-8' page_text = response.text #解析页面数据(获取页面中的图片链接) #创建etree对象 tree = etree.HTML(page_text) div_list = tree.xpath( '//div[@id=

Python爬虫学习教程:天猫商品数据爬虫

℡╲_俬逩灬. 提交于 2021-02-12 04:15:49
天猫商品数据爬虫使用教程 下载chrome浏览器 查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动 pip安装下列包 pip install selenium pip install pyquery 登录微博,并通过微博绑定淘宝账号密码 在main中填写chromedriver的绝对路径 在main中填写微博账号密码 #改成你的chromedriver的完整路径地址 chromedriver_path = "/Users/bird/Desktop/chromedriver.exe" #改成你的微博账号 weibo_username = "改成你的微博账号" #改成你的微博密码 weibo_password = "改成你的微博密码" 效果演示图片 项目源码 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver import

Python爬虫学习教程:天猫商品数据爬虫

扶醉桌前 提交于 2021-02-12 04:01:09
天猫商品数据爬虫使用教程 下载chrome浏览器 查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动 pip安装下列包 pip install selenium pip install pyquery 登录微博,并通过微博绑定淘宝账号密码 在main中填写chromedriver的绝对路径 在main中填写微博账号密码 1 # 改成你的chromedriver的完整路径地址 2 chromedriver_path = " /Users/bird/Desktop/chromedriver.exe " 3 # 改成你的微博账号 4 weibo_username = " 改成你的微博账号 " 5 # 改成你的微博密码 6 weibo_password = " 改成你的微博密码 " 效果演示图片 项目源码 1 # -*- coding: utf-8 -*- 2 3 from selenium import webdriver 4 from selenium.webdriver.common.by import By 5 from selenium.webdriver.support.ui import WebDriverWait 6 from selenium.webdriver.support import expected_conditions as EC 7

Selenium:多窗口切换(获取窗口句柄handle)

我怕爱的太早我们不能终老 提交于 2021-02-12 03:17:26
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎么在这两个窗口之间进行切换呢?每个浏览器窗口都有一个唯一的属性句柄(handle)来表示,我们就可以通过句柄来切换 获取当前窗口句柄: # coding = utf-8 from selenium import webdriver # 驱动文件路径 driverfile_path = r ' D:\coship\Test_Framework\drivers\chromedriver.exe ' # 启动浏览器 driver = webdriver.Chrome(executable_path= driverfile_path) # 打开百度首页 driver.get(r ' https://www.baidu.com/ ' ) # 获取当前窗口句柄 main_windows = driver.current_window_handle print (main_windows) # 退出 driver.quit() 获取所有窗口句柄: # coding = utf-8 from selenium import webdriver from selenium.webdriver

Selenium WebDriver-获取与切换浏览器窗口的句柄

会有一股神秘感。 提交于 2021-02-12 02:52:09
通过selenium webdriver去切换浏览器的窗口,需要通过句柄,具体代码如下: # encoding=utf-8 import unittest import time import chardet from selenium import webdriver class VisitSogouByIE(unittest.TestCase): def setUp(self): # 启动chrome浏览器 self.driver = webdriver.Chrome(executable_path = " e:\\chromedriver " ) def test_operateWindowHandle(self): url = " http://www.baidu.com " self.driver.get(url) # 获取当前窗口句柄 now_handle = self.driver.current_window_handle # 打印当前获取的窗口句柄 print now_handle # 百度搜索输入框中输入“selenium” self.driver.find_element_by_id( " kw " ).send_keys( " w3cschool " ) # 点击搜索按钮 self.driver.find_element_by_id( " su " )

爬虫-图片懒加载技术、selenium和PhantomJS

非 Y 不嫁゛ 提交于 2021-02-11 19:18:58
动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests from lxml import etree if __name__ == "__main__": url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #获取页面文本数据 response = requests.get(url=url,headers=headers) response.encoding = 'utf-8' page_text = response.text #解析页面数据(获取页面中的图片链接) #创建etree对象 tree = etree.HTML(page_text) div_list = tree.xpath( '//div[@id=

selenium xpath定位

馋奶兔 提交于 2021-02-11 18:48:25
id,  name,  class name,  tag name, link text,  partial link text,  xpath,  css selector 下面主要介绍一下xpath: 一、xpath基本定位用法   1.1 使用id定位 -- driver.find_element_by_xpath('//input[@id="kw"]')      1.2 使用class定位 -- driver.find_element_by_xpath('//input[@class="s_ipt"]')      1.3 当然 通过常用的8种方式结合xpath均可以定位(name、tag_name、link_text、partial_link_text)以上只列举了2种常用方式哦。 二、xpath相对路径/绝对路径定位   2.1 相对定位 -- 以// 开头 如://form//input[@name="phone"]      2.2 绝对定位 -- 以/ 开头,但是要从根目录开始,比较繁琐,一般不建议使用 如:/html/body/div/a    三、xpath文本、模糊、逻辑定位   3.1【文本定位】使用text()元素的text内容 如://button[text()="登录"]      3.2 【模糊定位】使用contains() 包含函数 如:/