-
怎么判断网页数据是动态加载的??
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)
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()
#使用下面的方法,查找指定的元素进行操作即可
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()
网友评论