首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Selenium自动化|爬取公众号全部文章,就是这么简单

Selenium介绍 Selenium是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,可以通过代码控制与页面上元素进行交互,并获取对应的信息。...Selenium很大的一个优点是:不需要复杂地构造请求,访问参数跟使用浏览器的正常用户一模一样,访问行为也相对更像正常用户,不容易被反爬虫策略命中,所见即所得。...Selenium请求网页等待响应受到网速牵制,如果元素未加载全而代码执行过快就会意外报错而终止,解决方式是等待。...隐式等待是在尝试发现某个元素的时候,如果没能立刻发现,就等待固定长度的时间driver.implicitly_wait(10),显示等待明确了等待条件,只有该条件触发,才执行后续代码,如这里我用到的代码...因此从这里开始,代码的执行逻辑为: 先遍历前10页100个文章的公众号名字,如果不是“早起Python”则跳过,是则获取对应的标题名字、发布日期和链接 第10页遍历完成后自动点击登录,此时人为扫码确定登录

2.5K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python3网络爬虫(九):使用Selenium爬取百度文库word文章

    ("//input[@id='passwd-id']")     前三个都很好理解,最后一个xpath什么意思?...这个无需着急,xpath是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素,在后面我会进行单独讲解。...3.2 Xpath     这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素。在正式开始使用XPath进行定位前,我们先了解下什么是XPath。...绝对路径写法(只有一种),写法如下:     引用页面上的form元素(即源码中的第3行): /html/body/form[1]     注意: 元素的xpath绝对路径可通过firebug直接查询。...然后找到下一页元素的位置,然后根据下一页元素的位置,触发鼠标左键单击事件。     我们审查元素看一下,这两个元素: ? ?

    3.4K61

    利用selenium爬取《西虹市首富影评》

    但是只能看到20条,如果想看到后面的,就必须进行翻页,这个时候,我们就需要进行元素定位了 我们打开网页,查看翻页元素的位置: 经过审查元素,我们发现,“后页”这个点击的其实是隶属于一个id=“paginator...我们检查一下页面的元素: 我们发现,这个div标签里竟然三个都变成的a标签,怪不得我们刚才的代码不管用了!...这个时候我们只需要取第三个标签,我们使用xpath取a的第三个元素a[3]就够啦: browser.find_element_by_xpath("//*[@id='paginator']/a[3]")....(loginurl) 打开登录页之后我们需要输入用户名和密码,审查一下输入框的元素: 看到了元素的id之后我们就可以获取他们并且传值了: # 获取用户名输入框,并先清空 browser.find_element_by_name...这样我们就能顺利爬取所有的评论了,我们现在只需要把每个页面上的评论保存下来即可: 这里我们为了保证格式工整,我们把评论做成表的形式,可以借用一下pandas的DataFrame这样一个数据格式,之后再保存为

    73540

    Python爬虫 selenium自动化 利用搜狗搜索爬取微信公众号文章信息

    ——刘同 文章目录 一、需求和网页分析 二、selenium爬虫 一、需求和网页分析 URL:https://weixin.sogou.com/ 你是否有特别喜欢的一些公众号文章,比如说关于网易云热评的...[cc0xxy3bht.gif] [dgv4n3qcnx.png] 找到搜索框和搜文章按钮的位置 [orvccyswz3.gif] 找到想要爬取的数据 [7dyy6ic603.png] 10页之后的内容...二、selenium爬虫 selenium是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,可以通过代码控制与页面上元素进行交互,并获取对应的信息。...selenium很大的一个优点是:不需要复杂地构造请求,访问参数跟使用浏览器的正常用户一模一样,访问行为也相对更像正常用户,不容易被反爬虫策略命中,容易实现所见即所得。...selenium的缺点:操作均需要等待页面加载完毕后才可以继续进行,所以速度要慢,效率不高。

    3.3K30

    自动化-Selenium 3-元素定位(Python版)

    这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素。...下图页面源码示例,来讲解XPath语法: 绝对路径写法(只有一种),写法如下: 引用页面上的form元素(即源码中的第3行):/html/body/form[1] 注意: 1.元素的XPath绝对路径可通过...下面是相对路径的写法: 查找页面根元素:// 查找页面上所有的input元素://input 查找页面上第一个form元素://form[1] 查找页面上第一个form元素内的第一个子input元素:/...'] 查找页面上id为formID的form元素下第4个input元素://form[@id='formID']/input[4] 前面讲的都是XPath中基于准确元素属性的定位,其实XPath也可以用于模糊匹配...、第三个参数指定的长度的子字符串 简单示例:打开百度首页,定位搜索框后输入Selenium。

    7.6K10

    web自动化捕捉元素基本方法

    2.1.4 页面切换 1.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮。 2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮。 ?...&加载Firefox配置 有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。...总结: selenium的webdriver提供了18种(注意是18种,不是8种)的元素定位方法,前面8种是通过元素的属性来直接定位的,后面的xpath和css定位更加灵活,需要重点掌握其中一个。...2.4 CSS定位 前言:大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。...2.4.3 css:标签 1.css页可以通过标签与属性的组合来定位元素 ?

    1.9K20

    Selenium自动化测试技巧

    在3个没有数据的表中,XPath识别第二个表的速度最慢,并且可能不会返回正确的表。因此,最后选择了XPath,它们很脆弱。CSS始终与名称和ID结合在一起。...此外,它是一个面向对象的类,它充当被测应用程序页面的接口。为简化起见,PageObject是一种面向对象的设计模式,并且将网页定义为类。页面上的不同元素将成为变量。用户交互被用具体的方法实现。...网页=类别 页面上的各种元素=变量 用户互动=方法 PageObject的优点 通过较小的UI调整,它有助于建立一个健壮的框架。测试代码和页面代码是分开的。 它们可靠且易于维护。 该脚本是可读的。...隐式–指示WebDriver轮询DOM,直到完成对元素的搜索为止。默认情况下,时间设置为0。 sleep Thread.sleep()无论工作页是否准备就绪,都会在括号内指定的秒数内等待。...如果在启动浏览器时同时打开一个新的firebug选项卡使您感到烦恼,请按照以下提供的提示之一关闭firebug起始页。 在showFirstRunPage标志中将False设置,如下。

    1.6K20

    读者投稿:selenium抓取bilibili拜年祭《千里之外》的评论

    (实际上伪造非常简单,但是从json串里提取结果很麻烦,远没有直接从网页的xpath提取简单,见 ajax_get_comment方法。...因此我决定用selenium抓取一下评论, 第一页的抓取只有进入该页面,然后定位到具体元素就可以爬取下来,但是抓取的时候,需要先等该元素加载好再去抓取,我将等待和抓取逻辑封装了一下,定义出一个函数方便使用...,其中参数 parent可以是 driver,也可以是页面元素, find_method是 expected_conditions的条件之一,如 find_element_by_xpath或 find_elements_by_xpath...点击下一页,发现页面没有刷新,可以知道肯定是用ajax异步读取数据并加载进来了,因此需要定位到“下一页”的按钮,然后进入下一页后再抓取,可以用 wait...until语法先等按钮加载完成,再点击: def...,完整代码如下,你会发现我对其中的几个函数用了 retry装饰器,通过重复增加成功率,抓取的数据我放在一个字典里 self.comments,字典的key是页数,字典的值是一个存储该页评论的列表,如果重新要抓取某一页

    70720

    《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)

    使用这种方法几乎可以定位到页面上的任意元素。 2.什么是xpath?...xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。...3.xpath定位的缺点 xpath 这种定位方式, webdriver会将整个页面的所有元素进行扫描以定位我们所需要的元素, 这是个非常费时的操作, 如果脚本中大量使用xpath做元素定位的话, 脚本的执行速度可能会稍慢...Contains()函数属于XPath函数的高级用法,使用的场景比较多,页面元素的属性值只要具有固定不变的几个关键字,就可以在元素属性经常发生一定程度的变化的时候,依然可以使用Contains函数进行定位...通过 Xpath 的各种方式组合,能够解决 selenium 自动化测试中界面定位的全部问题,可以说:有了 Xpath,再也不用担心元素定位了。

    2.2K30

    python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息

    例如我们想搜索爬虫,使用selenium实现自动搜索。首先需要了解的一个函数为 find_element_by_id,该函数可以通过id 找到界面元素。...在源代码中右键,选择Copy之后点击Copy XPath,这时我们就把当前这个元素的XPath获取了。 ?...以上省略了浏览器自动打开并搜索内容的过程,直接查看了结果。 那么我们每一页都获取第一个结果,这时只需要自动点击下一页后获取即可。 首先得到下一页按钮的元素对象: ?.../a 第四页://*[@id="31"]/h3/a 第五页://*[@id="41"]/h3/a 从以上数据得知,只有第一页的XPath 不同,其它的XPath都遵循从11-21-31-41 每一页加10...并且发现下一页按钮的 XPath也发生了改变,变成了: //*[@id="page"]/div/a[11] 完整代码如下: from selenium import webdriver import time

    2.2K20

    频次最高的38道selenium面试题及答案(上)「建议收藏」

    在class中定义页面上的元素和一些该页面上专属的方法。 5、什么是page factory? Page Factory实际上是官方给出的java page object的工厂模式实现。...第二种方法:通过xpath的轴 parent/following-sibling/precent-sibling 12、如何去定位页面上动态加载的元素?...另外xpath定位有通过绝对路径定位的,有时会不准确; 而用css选择器定位比较简洁,运行速度更快,通常用于性能要求严格的场景。 17、如何去定位页面上动态加载的元素? 显式等待。...#传入三个参数,第一个是浏览器驱动,第二个是等待多少秒,第三个是每隔多少秒监控一次 18、如何去定位属性动态变化的元素?...第一种:通过子元素定位父元素,selenium提供了parent方法,但是只能定位到父元素,却不能获取元素属性,也不能操作。 第二种:通过xpath的语法直接定位。 如.

    1.8K20

    爬虫案例1-爬取图片的三种方式之一:selenium篇(2)

    2-爬取视频的三种方式之一:requests篇(1) 爬虫案例2-爬取视频的三种方式之一:selenium篇(2) 爬虫案例2-爬取视频的三种方式之一:DrissionPage篇(3) selenium...selenium提供了很多编程语言的接口,如java,python,c#等。这让开发者可以自己编写脚本来自动化web应用的测试。本文主要介绍selenium在web爬爬取图片的案例。...import By # 用来定位web页面上的元素 from time import sleep # 时间函数 import os # 文件管理模块...searchid=147') # 打开网页 for num in range(0,14): # 多页爬取 data_img=driver.find_elements(by=By.XPATH, value....click() # 点击下一页 共勉 忙碌是治愈焦虑的良药 ps 有时候会报错可能会有以下几个原因 因为页面采用的懒加载技术,所以定位的时候要让元素在页面中显示出来才行,可以自己采用鼠标滚动事件 可以采用时间模块让页面中的元素全部加载后再去定位元素

    33300

    Python爬虫:如何自动化下载王祖贤海报?

    爬虫的流程 相信你对“爬虫”这个词已经非常熟悉了,爬虫实际上是用浏览器访问的方式模拟了访问网站的过程,整个过程包括三个阶段:打开网页、提取数据和保存数据。...XPath定位 XPath是XML的路径语言,实际上是通过元素和属性进行导航,帮我们定位位置。它有几种常用的路径表达方式。 ?...@id=“abc”]’) 选取所有book元素,且这些book元素拥有id= "abc"的属性; xpath(’//book/title | //book/price’) 选取book元素的所有title...如果想要从豆瓣图片中下载王祖贤的海报,你应该先把我们日常的操作步骤整理下来: 打开网页; 输入关键词“王祖贤”; 在搜索结果页中选择“图片”; 下载图片页中的所有海报。...这里通过XPath语法匹配到了多个元素,因为是多个元素,所以我们需要用for循环来对每个元素进行提取。

    2.1K30

    FreeBuf官网发布《简易Python Selenium爬虫实现歌曲免费下载》

    主要思路就是爬取播放页里的播放源文件的url,程序可以读取用户输入并返回歌单,,,因为在线网站包含大量js,requests就显得很无奈,又懒得手动解析js,于是寄出selenium大杀器。...selnium是一款很强大的浏览器自动化测试框架,直接运行在浏览器端,模拟用户操作,目前selenium支持包括IE,Firefox,Chrome等主流浏览器及PhantomJS之类的无头浏览器,selenium...步骤一: 进入酷狗主页,F12查看元素,,通过selenium.webdriver的send_keys()方法给send_input类传参,即用作用户的输入,然后通webdriver.click(...步骤二: 查看元素里每首歌的路径,发现每首歌的路径只有不同,于是通过对li的迭代来获取每一首歌的xpath,并输出歌曲名字的元素,然后依旧通过webdriver的click()方法点击歌曲链接...,,总之selenium真的是一款非常强大的框架,对爬虫有兴趣的同学一定要了解一下。

    1.2K50

    爬虫学习(三)

    元素的值必须大于35.00: /bookstore/book[price>35.00]/title 找到包含下一页这三个字的文本: //*[contains(text(),'下一页')] 1.1.2选取未知节点...我们选择元素,右键使用copy XPath的时候,可能此语句在后端代码中无法执行(无法查找到指定的元素),这时就需要使用XPath语法对其进行修改,这也就是为什么有这么方便的工具我们仍然要学习语法。...但是XPath效率高一点,正则是最高的。 4.4.3窗口与框架 XPath无法提取到Iframe框架里面的处理。 selenium标签页的切换: # 1....2、xpath获取标签属性的语法 a:*/@href 3、xpaht获取标签文本的语法 a:*/text() 4、xpath查找特定的节点的语法 a://*[contains(text(),'下一页...)获取属性 8、使用selenium获取元素中定位的方法 a:xpath/id/tag_name/link/select/等 9、常见的反爬及对应的解决方法 a:headers----构建user_agent

    5.7K30

    WEB-UI自动化实践

    1.设计背景 随着IT行业的发展,产品愈渐复杂,web端业务及流程更加繁琐,目前UI测试仅是针对单一页面,操作量大。为了满足多页面功能及流程的需求及节省工时,设计了这款UI 自动化测试程序。...定位一个元素的方法很多,常用的有 id,name,css,xpath 等,对应不同的定位方法selenium 在处理上也给出了不同接口,这从维护角度上来考虑显然不是最好的。...页面上的元素都可以用 xpath 来描述;缺点,不稳定,大量使用会给用例维护产生很大的负担。...xpath 一般只要前端在页面上做一下小调整,用例就必须重新维护,在不得不使用 xpath 的情况下,为了减少今后的维护量,可对 xpath 做一些优化,可以减少 xpath 的路径长度提高稳定性。...有一种元素能在页面上正常展示,但对于工具来说它是不可见的,这是因为在一般情况下,元素可见需要满足以下几个条件:visibility!=hidden ; display!=none; opacity!

    1.7K20

    55. Python 爬虫(4)

    它分为三个组件: Selenium IDE Selenium RC (Remote Control) Selenium Webdriver Selenium IDE:是firefox的一个插件,允许测试人员录制脚本并回放...XPath是XML Path的简称,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。...绝对路径: 根元素开始,及html开始用/ 相对路劲: 任意符合条件的元素 // 查找页面上所有的input元素://input 查找页面上第一个form元素内的直接子input元素(即只包括form元素的下一级...,双//号)://form[1]//input 查找页面上第一个form元素://form[1] 查找页面上id为loginForm的form元素://form[@id='loginForm'] 查找页面上具有...name属性为username的input元素://input[@name='username'] 查找页面上id为loginForm的form元素下的第一个input元素://form[@id='loginForm

    89530

    019:Selenium操作Boss直聘进行一键职位投递

    所以我今天就用 Selenium + Python 写了一个自动沟通的脚本。 写的时候发现,Boss直聘上面反 Selenium 措施也是很到位的。 下面我就介绍下代码实现的具体步骤吧。...我想用class_name直接获取input的时候,发现有三个手机号输入框,这里需要使用xpath来定位元素, 所以直接右键点击input这里,选择copy,点击copy中的copy-Xpath。...}_n1z"]'.format(id)) 然而搞了很久发现这里不仅仅是元素过期问题,我用手动拖动的时候也是会报错。...(i))).perform() # i 在外面给的循环,完整代码贴到最后 time.sleep(0.5) 然后获取详情页的url: xiangqing_url = driver.find_element_by_xpath...如果需要知道自己投递了多少和跟什么职位打招呼了,可以在详情页获取下元素,来获取详细的信息,这个就不多说了。

    3.3K42
    领券