美文网首页
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