网络爬虫scrapy入门案例 scrapy爬虫如何应对反爬
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
参考: Selenium教程: 【【淘密令】】 官方参考文档: Selenium Documentation: 【【淘密令】】模拟登陆, 搜索关键词:
浏览器插件:Selenium IDE
中式读法:【?瑟林捏幕 】
Selenium( 【【淘密令】】 中文网:?)是一个强大的网络数据采集工具,最初是为了网站自动化测试而开发的,被用来测试 Web 应用程序在不同的浏览器和操作系统上运行能力。
Selenium 不带浏览器,它需要与第三方浏览器结合在一起使用。例如,如果你在 Chrome 上运行 Selenium
? ? ? ? Selenium 是什么?一句话,自动化测试工具。简单的说就是一个可以用代码操所浏览器的工具。可以通过【【淘密令】】进行搜索关键字,点击按钮等等操作。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说?Selenium 可以自动化操作这些浏览器,但是必须下载并设置不同的浏览器驱动(注:部分浏览器驱动地址需要科学上网)。
【【淘密令】】 是一套完整的web应用程序测试系统,包含了测试的录制(【【淘密令】】 IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此用于任何支持JavaScript的浏览器上。
【【淘密令】】 可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
Selenium 支持多种语言开发,比如 Java,C,Ruby、Python 等。
? ? ? ? 嗯,所以呢?安装一下 Python 的 Selenium 库,再安装好 PhantomJS,不就可以实现 Python+Selenium+PhantomJS 的无缝对接了嘛!PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与 Python 的对接,Python 进行后期的处理,完美的三剑客!
有人问,为什么不直接用浏览器而用一个没界面的 PhantomJS 呢?答案是:效率高!
用python写爬虫的时候,主要用的是【【淘密令】】的Webdriver,我们可以通过下面的方式先看看Selenium.Webdriver支持哪些浏览器。首先导入 webdriver 模块。然后使用help函数
from 【【淘密令】】 import webdri【【微信】】(webdriver)
首先安装 Selenium:pip install 【【淘密令】】
安装 浏览器 驱动 webdriver ? ? ? ? 1. chromedriver 下载地址: ? ? ? ? ? ? chromedriver 镜像地址 :CNPM Binaries Mirror ? ? ? ? 2. Firefox 的驱动 【【微信】】 下载地址:Releases ・ mozilla/【【微信】】 ・ 【【微信】】 ? ? ? ? 3. IE 驱动 下载地址:NuGet Gallery | Selenium.【【淘密令】】.【【微信】】.8.1
注意:下载解压后,将chromedriver.exe , 【【微信】】.exe , Iedriver.exe 放到?Python 的安装目录,例如 D:\python 。 然后再将 Python 的安装目录添加到系统环境变量的 Path
爬虫 Selenium Chromium 与 Chromedriver对应版本( 注意是 chromium,不是 Chrome ): 淘宝镜像地址在每个文件夹的 notes.txt 中存有 chromium 和 Chromedriver 的版本对应。
from 【【淘密令】】 import webdri【【微信】】 = webdriver.Chrome() # browser = webdriver.Firefox() # browser = webdriver.Ie() browser.get('https://www.baidu.com/') __input = input("暂停, 按任意键继续")
运行这段代码,会自动打开浏览器,然后访问百度。
如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里。下载驱动,然后将驱动文件路径配置在环境变量即可。
模拟提交
下面的代码实现了“模拟百度提交搜索”的功能。首先等页面加载完成,然后输入关键字到搜索框文本,最后点击提交。
其中 driver.get 方法会打开请求的 URL,【【淘密令】】 会等待页面完全加载完成之后才会返回,即程序会等待页面的所有内容加载完成,JS渲染完毕之后才继续往下执行。注意:如果这里用到了特别多的 Ajax 的话,程序可能不知道是否已经完全加载完毕。
【【淘密令】】 提供了许多寻找网页元素的方法,通过 By 类的方法。
然后,输入文本,模拟点击回车。利用 Keys 这个类来模拟键盘输入。就像敲击键盘一样。
注意:获取网页渲染后的源代码。输出 page_source 属性即可。
通过 dir(browser) 查看,browser?对象有那些方法,?
测试用例
测试用例是继承了 unittest.TestCase 类,继承这个类表明这是一个测试类。setUp方法是初始化的方法,这个方法会在每个测试类中自动调用。每一个测试方法命名都有规范,必须以 test 开头,会自动执行。最后的 tearDown 方法会在每一个测试方法结束之后调用。这相当于最后的析构方法。在这个方法里写的是 close 方法,你还可以写 quit 方法。不过 close 方法相当于关闭了这个 TAB 选项卡,然而 quit 是退出了整个浏览器。当你只开启了一个 TAB 选项卡的时候,关闭的时候也会将整个浏览器关闭。
运行后自动打开Chrome浏览器,并登陆百度打印百度首页的源代码,然后关闭浏览器
import time from 【【淘密令】】 import webdri【【微信】】.webdriver.common.by import By browser = webdriver.Chrome() browser.get("https://www.baidu.com") print(browser.page_source) browser.close()
这是一个非常有用的方法,这里就可以直接调用js方法来实现一些操作,下面的例子是通过登录知乎然后通过js翻到页面底部,并弹框提示
from 【【淘密令】】 import webdri【【微信】】 = webdriver.Chrome() browser.get("https://www.zhihu.com/explore") browser.execute_script('window.scrollTo(0, document.body.scrollHeight)') browser.execute_script('alert("To Bottom")') input('暂停,按 enter 退出') browser.close()
Selenium常见元素定位方法和操作的学习介绍:[python爬虫] Selenium常见元素定位方法和操作的学习介绍_【【淘密令】】元素定位_Eastmount的博客-CSDN博客
Selenium切换窗口句柄及调用Chrome浏览器:[python爬虫] Selenium切换窗口句柄及调用Chrome浏览器_【【淘密令】】 窗口句柄_Eastmount的博客-CSDN博客
查找单个元素
这里通过三种不同的方式获取元素。结果都是相同的。
查找元素的方法
Selenium 提供了8种定位方式:id、name、class name、tag name、link text、partial link text、xpath、css selector。
By 类的一些属性如下
ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"
通过 By 模块 定位元素
多个元素查找
- 单个元素是 find_element,
- 多个元素是 find_elements,结果是获得一个元素列表
示例:lis = browser.find_elements(By.CSS_SELECTOR,'.ser【【微信】】')
玩转python 【【淘密令】】鼠标键盘操作(ActionChains):玩转python 【【淘密令】】鼠标键盘操作(ActionChains)_python_脚本之家 Selenium鼠标与键盘事件常用操作方法示例:Selenium鼠标与键盘事件常用操作方法示例_python_脚本之家
找到页面元素后,就需要和页面交互,比如:点击,输入等等。
需要导入包:from 【【淘密令】】.webdriver.common.keys import Keys
ele.send_keys("some text") # 文本框输入 ele.send_keys("and some", Keys.ARROW_DOWN) ele.clear() # 清除 文本框 内容
Selenium 所有的 api 文档:7. 【【淘密令】】 API ― Selenium Python Bindings 2 documentation
将动作附加到动作链中串行执行
更多操作参考:7. 【【淘密令】】 API ― Selenium Python Bindings 2 documentation
元素拖拽
要完成元素的拖拽,首先你需要指定被拖动的元素和拖动目标元素,然后利用 ActionChains 类来实现
这样就实现了元素从 source 拖动到 target 的操作
chrome 浏览器打开标签页的快捷键是 ctrl+t,那把 ctrl+t 的按键事件传入即可
from 【【淘密令】】 import webdri【【微信】】.webdriver.【【微信】】.ui import Select from 【【淘密令】】.webdriver.common.by import By from 【【淘密令】】.webdriver.common.keys import Keys from 【【淘密令】】.webdri【【微信】】s
browser = webdriver.Chrome() browser.maximize_window() url = 'https://www.baidu.com' browser.get(url)
ac = ActionChains(browser) ac.key_down(Keys.CONTROL).key_down('t').key_up(Keys.CONTROL).key_up('t').perform() input("暂停,按 enter 退出...") browser.close()
import time from 【【淘密令】】 import webdri【【微信】】.webdriver.common.keys import Keys from 【【淘密令】】.webdriver.common.by import By browser = webdriver.Chrome() # 默认的火狐浏览器 for i in range(5): # 这句代码相当于在浏览器窗口下按下ctrl+t打开一个新的标签页 browser.find_element(By.TAG_NAME, 'body').send_keys(Keys.CONTROL + 't') time.sleep(10) # 等待所有窗口完全打开,10秒够用了, 如果不打开得不到所有句柄,只能得到部分。 handles = browser.window_handles print(len(handles)) print(handles) input('暂停,按 enter 退出') browser.close()
通常要确保页面加载完成,可以使用 【【淘密令】】.webdriver.【【微信】】.ui.【【淘密令】】Wait?
打开新窗口示例代码:
get_attribute('class')
id、location、tag_name、size
下拉选项卡的的处理
首先获取了第一个 select 元素,也就是下拉选项卡。然后轮流设置了 select 选项卡中的每一个 option 选项。你可以看到,这并不是一个非常有效的方法
其实 【【淘密令】】 中提供了一个叫 Select 的方法,可以帮助我们完成这些事情。
如你所见,它可以根据索引来选择,可以根据值来选择,可以根据文字来选择。是十分方便的。
全部取消选择怎么办呢?很简单 select = Select(driver.【【微信】】('id')) select.deselect_all() 这样便可以取消所有的选择。 另外我们还可以通过下面的方法获取所有的已选选项。 select = Select(driver.【【微信】】h("xpath")) all_selected_options = select.all_selected_options 获取所有可选选项是 options = select.options 如果你把表单都填好了,最后肯定要提交表单对吧。怎吗提交呢?很简单 driver.【【微信】】("submit").click() 这样就相当于模拟点击了 submit 按钮,做到表单提交。 当然你也可以单独提交某个元素 element.submit() 方法,【【淘密令】】 会在表单中寻找它所在的表单,如果发现这个元素并没有被表单所包围,那么程序会抛出 NoSuchElementException 的异常。
在很多网页中都是有Frame标签,所以我们爬取数据的时候就涉及到切入到frame中以及切出来的问题,通过下面的例子演示 这里常用的是 switch_to.from() 和 switch_to.parent_frame()
Python+Selenium练习篇之27-多窗口之间切换 :Python+Selenium练习篇之27-多窗口之间切换_Anthony_tester的博客-CSDN博客 python 【【淘密令】】打开新窗口,多窗口切换:python 【【淘密令】】打开新窗口,多窗口切换_蘑菇猎手的博客-CSDN博客 python/【【淘密令】】/chrome打开新窗口并实现窗口切换:?python + 【【淘密令】】 + chrome 如何打开新窗口,并实现窗口切换_谷歌浏览器新窗口代码_Kosmoo的博客-CSDN博客
【【淘密令】】之 定位以及切换frame(iframe):【【淘密令】】之 定位以及切换frame(iframe)_【【淘密令】】切换到iframe_huilan_same的博客-CSDN博客
关键字:【【淘密令】】 iframe 切换
如果在一个页面上点击一个链接之后,并不是在当前页面上打开,而是重新打开一个新页面;这种情况下如何跳转到新的页面上操作?首先,需要了解的是每个窗口都有句柄的,可以理解为浏览器窗口的唯一标识符,根据这个标识符来确定新打开的窗口。打开新页面后,【【淘密令】】 的 focus 还是在 原来的页面上,所以需要使用?switch_to.window?方法把 焦点(focus) 切换到新页面上
如果是新打开的 iframe 就使用 switch_to_frame('xxx') 如果是新打开的 tab 就使用 switch_to_window('')
一个浏览器肯定会有很多窗口,所以我们肯定要有方法来实现窗口的切换。切换窗口的方法如下
switch_to_window 方法现在已经废弃,鼠标放在这个方法上提示 使用 switch_to.window 代替
另外你可以使用 window_handles 方法来获取每个窗口的操作对象。例如
另外切换 frame 的方法如下
这样焦点会切换到一个 name 为 child 的 frame 上。
打开新窗口主要使用 JavaScript 实现:
通过执行 js 命令实现新开选项卡 window.open() 不同的选项卡是存在列表里 browser.window_handles 通过 browser.window_handles[0] 就可以操作第一个选项卡
页面出现了弹窗
通过上述方法可以获取弹窗对象。
前进 和 后退 针对的是 浏览器浏览的网页 的 历史记录
driver.【【微信】】() driver.back()
get_【【微信】】() delete_all_cookes() add_cookie()
为页面添加 Cookies,用法如下
获取页面 Cookies,用法如下
以上便是 Cookies 的处理,
深圳快速网站建设 深圳网站建设系统介绍
深圳快照,深圳快捷快递,深圳快捷,深圳快捷快递电话号码内容摘要:本篇文章给大家谈谈深圳网站建设品牌,以及深圳网站建设方案服务对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。深圳哪个网站建设公司好?深圳好的网站建设公司有哪些?这是很多网站建设客户关心的问题,公
本篇文章给大家谈谈深圳网站建设品牌,以及深圳网站建设方案服务对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
深圳好的网站建设公司有哪些?这是很多网站建设客户关心的问题,公司很久或者2年3年才会做一次网站,网站的好坏直接影响公司的品牌形象,那么到底深圳网站建设公司哪家好?作为专业的深圳老牌建站公司华专网络今天就以自身为例来给大家讲一讲作为一个好的建站公司应该具备哪些基本条件。
首先好的网建设公司应该配备至少9个部门,企划部,设计部,技术部,产品部,测试部,销售部,运维部,财务部,人力部,麻雀虽小,五脏俱全,一个公司要想发展壮大,应该有自己的各个职能部门,各司其职,各尽其能,各个部门彼此相互独立,却又相互配合,相辅相成才能服务好广大客户,华专网络自成立之日起,核心领导秉承公司做大做强的理念,就早已建立了各个职能部门。下面分别说说各个部门的作用。
企划部,客户要做一个网站,首先企划部介入和客户对接,了解客户的需求之后进行策划,首先需要找准客户的需求定位,明确好定位才能在搜集资料,整理文案的时候有的放矢,把文案教给设计部的时候才不至于方向不对,反复改稿等,华专网络在对待每一个客户的时候,企划部都会详细了解客户需求,明确客户建站定位,从建站的目的着手,建网站主要是宣传为主还是营销分为展示型网站和营销型网站,从载体来分响应式网站和手机端网站以及微网站和电脑端网站也叫做PC端网站,客户的主要产品,公司的核心优势,公司想重点突出的内容,公司的企业核心理念,公司的品牌定位等等都是华专网络企划部需要掌握并提炼出最终文案。
设计部,华专网络公司的所有设计师均是从事网页设计三年以上的姿势网页设计师,因为秉承高端网站建设公司的定位,华专网络力求每一个网页作品能够打动客户,能够做到客户满意,所以选好设计师,设计师选好的一直是华专网络选择设计师的标准,华专网络在做网页设计的时候设计师会从以下几个方面去考虑。
第一、公司从事的行业,因为不同行业网站的风格会有所区别,为什么有的网站一打开,还没看内容就知道是珠宝网站,有的网站一打开一看就是婚庆公司网站,这就是行业特质所决定,所以了解公司的行业背景,有助于华专网络网站设计师整体把控网站的设计风格,不跑偏。
第二、公司的主色调、辅助色调的选取,主色调一般参考公司的logo,也就是VI的核心标识,也可以参考行业背景色,比如科技类公司可以选取科技蓝作为主色调,婚庆公司可以选取红,粉,紫等暖色调作为主色调,辅助色调的选取主要是看主色调选的是什么,如果主色调选的是暖色调,则辅助色可以用冷色调搭配,相反则亦然,冷暖搭配给人舒服,浑然一体的感觉。
第三、细节处理,有的网站外行一看上去就是高、大、上,就是感觉好,但是你问他好在哪里,他又说不出来,其实好的网站作品,细节一定要处理到位,例如屏间过度处理,线条粗细,颜色深浅等等,
在设计上华专网络设计师会严格遵循华专网络设计部的规则从以上三点出发去做网页设计,当然还有一些其他方面华专网络编辑认为不重要的步骤就没有写上。
技术部,华专网络对外承接网站建设、小程序开发、微信公众号开发、app开发、OA、CRM开发、软件定制开发,所以华专网络拥有众多资深网络工程师,部分核心工程师曾在IBM,汤森路透,新浪,360等公司从事技术开发工作,拥有非常丰富的软件开发经验。
产品部,一个公司如果没有自己的产品部门,做什么工作都会止于皮毛,不会深入挖掘客户的真正需求,华专网络团队成立十余年服务全国上千家客户,产品部在不断的总结客户提出的新需求,以及不断的完善自己已有的公司产品,以及开发适应市场需求的新产品。
测试部,好的产品一定是经过不断的打磨最后才能成型出重的,所以一定要测试部门经过反复的测试,找出bug,并提交给技术部,技术部开发,然后再测试,经历这样一轮又一轮的往复最终才能呈现给用户好的体验。
销售部,销售部是华专网络的先锋排头兵,公司大了需要正常的运转,在老客户维系的基础上,也需要不断的开发新客户,这样公司才能不断的做大做强。华专网络的销售拥有专业的IT技术出身,能够给客户讲清问题的同时把产品卖出去,同时维护好公司和客户之间的关系,做好公司和客户的纽带。
运维部,作为华专网络公司已完成客户的售后部门,运维部起着重大作用,客户项目完成后,网站或者其他公司产品出现使用问题,或者操作疑问,以及运行异常等问题,可以7*24小时联系华专网络的售后运维电话,会有专门运维人员来及时处理和解决。
财务部,作为华专网络公司日常的正常运转,公司客户的发票开出,各项费用的支出,公司员工工资、及社保、公积金按时发放和缴纳,以及按时报税,及时记录开支,做好记账工作。
人力部,华专网络目前正处于高速发展阶段,公司招兵买马是必不可少的工作,人力部的首要任务就是把公司的优厚福利待遇及良好的人文发展环境宣传出去,为公司招到合适的人才。【点击了解更多加盟项目】
互联网发展至今,市面上的网站建设公司已经有很多了,小到有工作室大到有上市公司,建站水平也是参差不齐,这你就要辨别清楚了。我作为半个内行人吧,可以分享几个选择网站建设公司的技巧,可以看看。
如果你希望自己的网站能领先于同行,那就要在网站呈现出与众不同的东西,也就是展现出你企业的独特性。可以先从建站公司展示在官网的客户案例来分析,还可以在他们的案例里找到与你同行业的客户网站对比一下。要是这个建站公司给客户做的网站都较为相似,你就要留意这家公司是否具备打造网站差异化的能力。
其次就是理解网站建设公司的建站理念,每家公司提供服务的侧重点都不同,有的注重设计,有的注重体验。我们怎么能清晰了解到他们的建站理念呢?除了理解他们对外输出的一段文案之外,也可以从他们客户案例去了解?提炼出他们的建站观点,从而评估他们是否与你“志同道合”。
专业的建站公司会有他们独特的建站理念,为客户做网站是会带着他们的思考与方法论去策划和设计的。对了,说到这,我想起有一家口碑不错的建站公司就在深圳――增长超人 growthman,同时还是一家数字营销综合服务商,以【网站改版专家】著称,算是行业标杆了。我记得他们会在官网展示网站建设的案例,还会做项目案例的分析拆解,更便于有建站需求的伙伴去了解他们,感兴趣的话可以搜他们官网看看。
有一家创意设计公司官网的视觉效果也不错,也有建站的服务,更追求网站视觉设计的可以去了解,是一家国际型的公司――奥美,好像是在上海的?是国际上知名营销策划设计公司,策划设计能力很强,服务过许多世界级企业,价格略高了点,预算充足的话,奥美也是不错的选择。
还有些可能还不错的就不一一推荐了,以上这两家给我的印象还不错,希望能帮助你选择适合你的网站建站公司~
之前在跟业内的朋友聊天时,聊到几家口碑不错的建站公司,每家公司的建站理念各不相同,各有各的侧重方向,可以着重看看以下这两家,给我的印象挺好的。
增长超人 growthman:高端定制网站建设公司,专注于品牌与营销相结合的网站建设理念发展,也就是“品销合一”,即能满足于企业对互联网营销中的获客需求?又不缺乏对品牌的建设,帮助过不少上市公司做过网站,可以到官网看看他们的案例分享。
皮肯 【【淘密令】】:位于北京的一家视觉创意设计公司,在做视觉创意设计上的效果很好,符合国外的审美,比较偏向国际吧,做过很多外贸行业的网站,也有很多不错的作品案例,网站制作能力在业内排得上名。
深圳好的网站建设公司有哪些?这是很多网站建设客户关心的问题,公司很久或者2年3年才会做一次网站,网站的好坏直接影响公司的品牌形象,那么到底深圳网站建设公司哪家好?作为专业的深圳老牌建站公司华专网络今天就以自身为例来给大家讲一讲作为一个好的建站公司应该具备哪些基本条件。
首先好的网建设公司应该配备至少9个部门,企划部,设计部,技术部,产品部,测试部,销售部,运维部,财务部,人力部,麻雀虽小,五脏俱全,一个公司要想发展壮大,应该有自己的各个职能部门,各司其职,各尽其能,各个部门彼此相互独立,却又相互配合,相辅相成才能服务好广大客户,华专网络自成立之日起,核心领导秉承公司做大做强的理念,就早已建立了各个职能部门。下面分别说说各个部门的作用。【点击了解更多加盟项目】
深圳网站建设品牌的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于深圳网站建设方案服务、深圳网站建设品牌的信息别忘了在本站进行查找喔。
深圳网站建设品牌..2023最新qq互赞群,2023最新qq互赞群,互动互助组为啥用不了,我刚加入了一个非常活跃的618 购物狂欢节天猫互助群二维码在哪找啊,里面有很多淘宝理想生活狂欢季的玩家一起助力。你想一起加入吗?