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

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

通过相同的流程,得到百度一下 按钮的html代码: 得到id为su,使用 find_element_by_id...10页的所有第一个结果值,这时所有代码可以写为: from selenium import webdriver import time driver = webdriver.Chrome(executable_path...并且发现下一页按钮的 XPath也发生了改变,变成了: //*[@id="page"]/div/a[11] 完整代码如下: from selenium import webdriver import time...'//*[@id="page"]/div/a[10]') nextbtn_element.click() time.sleep(2) 为之前的代码,新增循环为遍历下一页以及获取第一个结果: #设置一个变量...中变化的值为11-21-31…,设置一个变量为1,每次加10即可,所以在循环中,第一句为: start+=10 由于XPath的值其它字符串没变化,所以整一条XPath语句可以写为: xpath_val

2.2K20

九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)

Firefox浏览器 加载火狐浏览器的核心代码如下: from selenium import webdriver driver = webdriver.Firefox() driver.get('http...对应爬取的标题是“百度一下,你就知道”,所以包含了“百度”,否则会出现断言报错。断言主要用于判断结果是否成功返回,从而更好地执行下一步定位操作。...三个超链接都使用同一个id名称“link”,通过find_elements_by_id()函数定位获取之后,再调用for循环输出结果,如下所示: #-*- coding:utf-8 -*- #By:Eastmount...比如想通过ID属性定位第三个诗人“杜牧”的超链接信息,但是三位诗人的ID属性值都是相同的,即“link”,如果没有其他属性,那我们怎么实现呢?此时可以借助XPath方法进行定位元素。...blog09_03.html代码中通过CSS选择器定位段落p元素的方法如下: test1 = driver.find_element_by_css_selector(‘p.content’) 如果存在多个相同

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

    Selenium元素定位

    Selenium常用的8种元素基本定位方式 find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name...find_element_by_id() #coding=utf-8 #www.testclass.cn #Altumn #2018-11-13 from selenium import webdriverimport...() 复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list队列.我们可以通过选择具体第几个元素进行单个元素定位; 百度首页右上角有新闻、hao123、地图、视频、贴吧、学术一些文字链接...() #定位一组元素; elements=driver.find_elements_by_class_name("mnav") print(len(elements)) #循环打印出每个元素的属性值...")) print(elements[i].get_attribute("class")) 输出结果如下所示: PS C:\Users\WangXiao\Desktop\mystuff> cd '

    1.1K10

    批量爬取百度图库中的图片

    一、导入库 首先导入需要用到的库,具体如下: import time from captcha import * from selenium import webdriver from selenium.webdriver.common.by...(input_pic_name, Keys.ENTER) 登录并搜索汽车图片后可看到如下页面: 三、获取单张图片的下载链接 接着通过xpath路径的方法获取第一张图片的下载链接,具体代码如下: 得到结果...: 四、下载单张图片接着通过获取到的链接下载第一张图片,具体代码如下: browser.get(new_herf) browser.find_element_by_xpath('/html/body/div...[1]/div[2]/div/div[2]/div/div[1]/span[7]').click() #下载图片 得到结果: 五、批量下载图片 最后写循环批量下载图片。...这里的关键是找到所有图片的xpath路径,并从路径中获取下载图片的链接,接着模拟点击下载即可。 所以首先要找出所有xpath路径的规律,并用循环的方式获取到所有路径。

    23510

    Scrapy框架的使用之Scrapy对接Selenium

    另一种是直接用Selenium或Splash模拟浏览器进行抓取,我们不需要关心页面后台发生的请求,也不需要分析渲染过程,只需要关心页面最终结果即可,可见即可爬。...我们依然抓取淘宝商品信息,抓取逻辑和前文中用Selenium抓取淘宝商品完全相同。...在Middleware里面的process_request()方法里对每个抓取请求进行处理,启动浏览器并进行页面渲染,再将渲染后的结果构造一个HtmlResponse对象返回。...首先我们传递选取所有商品对应的XPath,可以匹配所有商品,随后对结果进行遍历,依次选取每个商品的名称、价格、图片等内容,构造并返回一个ProductItem对象。...查看MongoDB,结果如下图所示。 ? 这样我们便成功在Scrapy中对接Selenium并实现了淘宝商品的抓取。

    2.4K51

    七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录 每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 每天一个小实例2(模拟网站登录)我用的是

    每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 1 from selenium import webdriver 2 from bs4 import BeautifulSoup 3...("input") 20 # 也可以通过XPath来匹配 21 element = driver.find_element_by_xpath("//input[@id='passwd-id']") 22...负责循环等待 4 from selenium.webdriver.support.ui import WebDriverWait 5 # expected_conditions 类,负责条件出发...() 9 driver.get("http://www.xxxxx.com/loading") 10 try: 11 # 页面一直循环,直到 id="myDynamicElement" 出现即返回...12 #如果不写参数,程序默认会 0.5s 调用一次来查看元素是否已经生成,如果本来元素就是存在的,那么会立即返回。

    2.3K70

    python爬虫从入门到放弃(八)之 Selenium库的使用

    执行结果如下,从结果中我们也可以看出基本山支持了常见的所有浏览器: ?...) browser.close() 这里我们通过三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的。...这里列举一下常用的查找元素方法: find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text...,如果还是不满足,就会抛出异常,如果满足了就会正常返回 from selenium import webdriver from selenium.webdriver.common.by import By...传入元素对象以及状态,相等返回True,否则返回False element_located_selection_state_to_be 传入定位元组以及状态,相等返回True,否则返回False alert_is_present

    3K70

    Scrapy 对接 Selenium

    ,我们只需要关心页面最终结果即可,可见即可爬,所以如果在Scrapy中可以对接Selenium话就可以处理任何网站的抓取了。...本节我们来看一下 Scrapy 框架中如何对接 Selenium,这次我们依然是抓取淘宝商品信息,抓取逻辑和前文中用 Selenium 抓取淘宝商品一节完全相同。...()方法里面对每个抓取请求进行处理,启动浏览器并进行页面渲染,再将渲染后的结果构造一个HtmlResponse返回即可。...随后的处理等待和翻页的方法在此不再赘述,和前文的原理完全相同。...response变量的xpath()方法即可,首先我们传递了选取所有商品对应的XPath,可以匹配到所有的商品,随后对结果进行遍历,依次选取每个商品的名称、价格、图片等内容,构造一个ProductItem

    6.5K20

    Selenium库的使用

    执行结果如下,从结果中我们也可以看出基本山支持了常见的所有浏览器: ?...)print(input_third)browser.close() 这里我们通过三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的...这里列举一下常用的查找元素方法: find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text...,如果还是不满足,就会抛出异常,如果满足了就会正常返回 from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom...传入元素对象以及状态,相等返回True,否则返回False element_located_selection_state_to_be 传入定位元组以及状态,相等返回True,否则返回False alert_is_present

    1.4K20

    selenium-携程酒店评论

    我提的数据直接界面上copy xpath的,只拿了用户的id和他的评论。 下面是测试图,这次放上面。 那就先说下用selenium拿这个数据时候的坑吧。...首先绕过webdriver检测机制 from selenium import webdriver import time from selenium.webdriver import ChromeOptions...在selenium中会覆盖当前窗口,一开始我用的是 driver.back(),在采集完后返回之前的列表页,但是因为上面说的他是异步加载的,每次back都只会返回到第一页。...= mainWindow: driver.switch_to_window(handle) 接着就是评论数据的采集了,这个倒是没有什么难度,也是通过给出的页数来获取最大页,然后循环去点击下一页...完整代码: from selenium import webdriver import time from selenium.webdriver import ChromeOptions option

    78510

    爆肝3W字,全网最全爬虫自动化获取企业招标信息,招标网、爱企查...

    初始化 导入必要的库 首先导入接下来自动化所需要的库 from selenium.webdriver.common.by import By from time import sleep from selenium...from selenium import webdriver: webdriver是Selenium的核心组件之一,它提供了与浏览器交互的接口。...执行查询后,cursor.fetchall 方法被调用以获取查询结果的完整列表。这个方法会返回一个列表,其中每个元素都是一个包含查询结果行的元组。...结果处理:查询结果通过cursor.fetchall()获取,并使用列表推导式处理成只包含公司名称的列表。 返回值:函数返回处理后的公司名称列表。...完整代码 # coding:utf-8 from selenium.webdriver.common.by import By from time import sleep from selenium

    35510

    从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据

    下载好以后测试一下 # 从 selenium 里面导入 webdriver from selenium import webdriver # 指定 chrom 驱动(下载到本地的浏览器驱动器,地址定位到它...至此,准备工作就绪,接下来正式进入爬虫案例讲解 2 案例详解 2.1 导入模块 将前文所述的第三方库及相关模块进行导入 from selenium.webdriver import ActionChains...# 导入动作链 from selenium import webdriver import time import csv import re 2.2 核心代码 确定目标网页:淘宝网(官网) ?...for循环遍历所有页面,获取该商品的所有数据 driver.get('https://s.taobao.com/search?...2.3 总观代码 from selenium.webdriver import ActionChains # 导入动作链 from selenium import webdriver import time

    1.1K21

    selenium最大化浏览器-Selenium第三遍一些简单的元素操作(1)

    = wb.find_element(By.XPATH, "//*[@id='kw']") # 输入Selenium   动态图:   清空输入内容:    # @Time : 2022...2S为了让大家更清晰的看到   3、单选框、复选框   作用:点击勾选,点击看到了就证明和按钮操作差不多了,只不过要思考的是,前端页面上他们通常都是有一个相同的属性值,可以思考下如何去随机的选择即可。...() # 定位搜索框 wb.find_element(By.XPATH, "//*[@id='kw']").send_keys('Selenium') sleep(2)...wb.find_element(By.XPATH, "//*[@id='kw']").send_keys(Keys.CONTROL, 'a') wb.find_element(By.XPATH,...() # 返回上一界面 sleep(2)   我列举的都是一些个人觉得重要的,当然他们还有其他用法大家可以自行拓展。

    27311

    自动化测试——selenium(环境部署和元素定位篇)

    号隔开的 前三位必须相同,第四位可以选最接近你浏览器版本的那个数....driver.find_element_by_name('name的值') # 导包 from time import sleep from selenium import webdriver # 实例化浏览器对象...,方可以使用;如果页面中存在多个相同标 签,默认返回第一个标签元素。...driver.find_element_by_xxx,但是也有 driver.find_elements_by_xxx这种element后面带s,表示执行结果 返回的是列表类型,里面的数据是多个元素对象...'] 注意: 1、使用 XPath 策略, 需要在浏览器⼯具中根据策略语法, 组装策略值,验证后再放入代码中使用 2、⽬标元素的有些属性和属性值, 可能存在多个相同特征的元素, 需要注意唯一性 2、路径结合逻辑

    1.8K10

    Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一

    官网最新效果 官方DEMO最新的效果如下,按照验证码的更新频率,基本博客看完,验证码也更新了,不过套路依旧是相同的,反爬只能增加爬虫编写的成本,并不能完全杜绝爬虫。 ?...编写自动化代码 使用selenium执行的操作,模拟人的点击行为即可 最初,我们导入一些selenium的基本模块与方法 import time import re from selenium import...按照什么方式进行元素的查找 例如 By.ID,By.ClassName,By.XPATH selenium.webdriver.support.wait 等待页面加载某些元素 from selenium.webdriver.support...,需要将所有的DIV匹配出来 ,采用find_elements_by_xpath 方法,尤其注意elements WebElement 具备一些常用的方法和属性 size:返回元素尺寸 text :返回元素文本...get_attribute(name):获得属性值 is_dispalyed() :该元素是否用户可见 初步运行结果 ?

    1.1K00
    领券