美文网首页
15. selenium

15. selenium

作者: 薛东弗斯 | 来源:发表于2024-03-02 09:20 被阅读0次
    1. 怎么判断网页数据是动态加载的??


      image.png

      以药监局网站为例,抓包,看网页的响应数据response里面有没有要查询的企业名称,如果没有,则说明是动态加载的。


      image.png
      image.png
      image.png

      根据url + param参数就可以获得响应数据。
      但动态加载获取数据比较麻烦。

    google 浏览器驱动程序下载

    chromedriver.storage.googleapis.com/index.html
    在线JSON校验格式化工具(Be JSON)
    selenium之 chromedriver与chrome版本映射表(更新至v2.46)_selenium版本对应chrome-CSDN博客
    CNPM Binaries Mirror (npmmirror.com)

    image.png
    from selenium.webdriver.chrome.service import Service
    from selenium import webdriver
    import time
    from lxml import etree
    # 实例化一个浏览器对象(传入浏览器的驱动程序)
    service = Service('./chromedriver.exe')
    bro = webdriver.Chrome(service=service)
    time.sleep(0.5)  # 解决浏览器闪退问题
    bro.get("http://125.35.6.84:81/xk/") # 让浏览器发起一个指定url对应请求
    # page_source获取浏览器当前页面的页面源码数据
    page_text = bro.page_source
    # 解析企业名称
    tree = etree.HTML(page_text)
    li_list = tree.xpath('//url[@id="qzlist"]/li')
    for li in li_list:
        name = li.xpath('./dl/@title')[0]
        print(name)
    time.sleep(5)
    bro.quit()
    
    #使用下面的方法,查找指定的元素进行操作即可
        find_element_by_id            根据id找节点
        find_elements_by_name         根据name找
        find_elements_by_xpath        根据xpath查找
        find_elements_by_tag_name     根据标签名找
        find_elements_by_class_name   根据class名字查找
    
    from selenium.webdriver.chrome.service import Service
    from selenium import webdriver
    from time import sleep
    from lxml import etree
    #创建一个浏览器对象executable_path驱动的路径
    service = Service('./chromedriver.exe')
    bro = webdriver.Chrome(service=service)
    sleep(0.5)  # 解决浏览器闪退问题
    
    #get方法可以指定一个url,让浏览器进行请求
    bro.get('https://www.baidu.com')
    sleep(1)
    #让百度进行指定词条的一个搜索
    text = bro.find_element_by_id('kw')#定位到了text文本框
    text.send_keys('人民币') #send_keys表示向文本框中录入指定内容
    sleep(5)
    button = bro.find_element_by_id('su')
    button.click()#click表示的是点击操作
    sleep(5)
    bro.quit()#关闭浏览器
    bro.quit()
    
    from selenium.webdriver.chrome.service import Service
    from selenium import webdriver
    from time import sleep
    service = Service('./chromedriver.exe')
    bro = webdriver.Chrome(service=service)
    sleep(0.5)  # 解决浏览器闪退问题
    
    #打开浏览器
    bro.get('https://www.baidu.com')
    
    #截屏
    bro.save_screenshot('./1.png')
    
    text = bro.find_element_by_id('kw')#定位到了text文本框
    text.send_keys('人民币') #send_keys表示向文本框中录入指定内容
    
    bro.save_screenshot('./2.png')
    
    bro.quit()
    

    https://www.runoob.com/

    #使用下面的方法,查找指定的元素进行操作即可
        find_element_by_id            根据id找节点
        find_elements_by_name         根据name找
        find_elements_by_xpath        根据xpath查找
        find_elements_by_tag_name     根据标签名找
        find_elements_by_class_name   根据class名字查找
    
    from selenium.webdriver.chrome.service import Service
    from selenium import webdriver
    from time import sleep
    from lxml import etree
    #创建一个浏览器对象executable_path驱动的路径
    service = Service('./chromedriver.exe')
    bro = webdriver.Chrome(service=service)
    sleep(0.5)  # 解决浏览器闪退问题
    
    #get方法可以指定一个url,让浏览器进行请求
    bro.get('https://www.baidu.com')
    sleep(1)
    #让百度进行指定词条的一个搜索
    text = bro.find_element_by_id('kw')#定位到了text文本框
    text.send_keys('人民币') #send_keys表示向文本框中录入指定内容
    sleep(5)
    button = bro.find_element_by_id('su')
    button.click()#click表示的是点击操作
    sleep(5)
    bro.quit()#关闭浏览器
    bro.quit()
    
    from selenium.webdriver.chrome.service import Service
    from selenium import webdriver
    from time import sleep
    service = Service('./chromedriver.exe')
    bro = webdriver.Chrome(service=service)
    sleep(0.5)  # 解决浏览器闪退问题
    
    #打开浏览器
    bro.get('https://www.baidu.com')
    
    #截屏
    bro.save_screenshot('./1.png')
    
    text = bro.find_element_by_id('kw')#定位到了text文本框
    text.send_keys('人民币') #send_keys表示向文本框中录入指定内容
    
    bro.save_screenshot('./2.png')
    
    bro.quit()
    

    https://www.runoob.com/

    相关文章

      网友评论

          本文标题:15. selenium

          本文链接:https://www.haomeiwen.com/subject/vbkhzdtx.html