当前位置: 首页 > news >正文

赣州高端网站开发全国工商企业信息查询官网

赣州高端网站开发,全国工商企业信息查询官网,英才简历在线制作网站,wordpress主题评论此篇文章主要介绍如何使用 Selenium 模块实现 无界面模式 执行JS脚本(把滚动条拉到底部)#xff0c;并以具体的示例进行展示。 1、Selenium 设置无界面模式 创建浏览器对象之前#xff0c;创建 options 功能对象 #xff1a;options webdriver.ChromeOptions() 添加…此篇文章主要介绍如何使用 Selenium 模块实现 无界面模式 执行JS脚本(把滚动条拉到底部)并以具体的示例进行展示。 1、Selenium 设置无界面模式 创建浏览器对象之前创建 options 功能对象 options webdriver.ChromeOptions() 添加无界面功能参数options.add_argument(--headless) 构造浏览器对象打开浏览器并设置 options 参数 browser webdriver.Chrome(optionsoptions) from selenium import webdriver options webdriver.ChromeOptions()  # 创建浏览器对象之前创建options功能对象 options.add_argument(--headless)  # 添加无界面功能参数 browser webdriver.Chrome(optionsoptions)  # 构造浏览器对象打开浏览器 2、Selenium 执行JS脚本 创建浏览器对象browser webdriver.Chrome() 执行JS脚本browser.execute_script() 最常用脚本 - 把滚动条拉到底部browser.execute_script(window.scrollTo(0,document.body.scrollHeight)) from selenium import webdriver browser webdriver.Chrome() # 创建浏览器对象 browser.execute_script(     window.scrollTo(0,document.body.scrollHeight) ) # 把滚动条拉到最底部 3、Selenium 设置无界面模式 执行JS脚本 案例 3.1 需求分析 基于 Selenium Chrome 抓取 http://www.jd.com/ 下 “python书籍” 的信息 3.2 爬虫思路 打开浏览器输入主页地址https://www.jd.com/ 使用 Selenium 的 Xpath 找到 信息输入框 和 点击搜索 节点//*[idkey] //*[idsearch]/div/div[2]/button 输入 “python书籍” 并点击 点击搜索按钮 使用 Selenium 的 Xpath 找到 书籍信息 节点对象列表 //*[idJ_goodsList]/ul/li  依次遍历每个元素并依次提取每本书籍信息 爬取完一页信息后需要判断是否是最后一页 可以看到 最后一页的节点信息为pn-next disabled 非最后一页的节点信息为pn-next 如果不是最后一页点击下一页继续进行爬取//*[idJ_bottomPage]/span[1]/a[9] 3.3 程序实现 初始化函数     def __init__(self):         # 设置为无界面         self.options webdriver.ChromeOptions()  # 创建浏览器对象之前创建options功能对象         self.options.add_argument(--headless)  # 添加无界面功能参数         self.driver webdriver.Chrome(optionsself.options)  # 构造浏览器对象打开浏览器         self.driver.get(urlhttp://www.jd.com/)  # 进入主页         # 搜索框发送python书籍点击搜索按钮         self.inputJD self.driver.find_element(By.XPATH, //*[idkey])  # 搜索框xpath://*[idkey]         self.inputJD.send_keys(python书籍)         self.driver.find_element(By.XPATH,                                  //*[idsearch]/div/div[2]/button).click()  # 搜索按钮xpath//*[idsearch]/div/div[2]/button 并点击         time.sleep(1)  # 要给页面元素加载预留时间 提取数据函数 def parse_html(self):                 function:  具体提取数据方法               in:  None              out:  None           return:  None           others:  Data Extraction Func                 self.driver.execute_script(             window.scrollTo(0,document.body.scrollHeight)         )  # 先把滚动条拉到最底部等待所有商品加载完成再进行数据爬取         time.sleep(3)  # 给页面元素加载预留时间         # 具体提取数据         li_list self.driver.find_elements(By.XPATH,                                             //*[idJ_goodsList]/ul/li)  # 基准xpath//*[idJ_goodsList]/ul/li 每一个商品对应一个li节点         item {}  # 定义一个空字典         for li in li_list:             item[名称] li.find_element(By.XPATH, .//div[classp-name]/a/em).text.strip()             item[价格] li.find_element(By.XPATH, .//div[classp-price]/strong).text.strip()             item[评价] li.find_element(By.XPATH, .//div[classp-commit]/strong).text.strip()             item[商家] li.find_element(By.XPATH, .//div[classp-shopnum]).text.strip()             print(item)  # 打印 程序入口函数 def run(self):                 function:  程序入口函数               in:  None              out:  None           return:  None           others:  Program Entry Func                 while True:             self.parse_html()             # 不是最后一页pn-next             # 最后一页pn-next disabled             if self.driver.page_source.find(pn-next disabled) -1:  # 没有找到 pn-next disabled说明不是最后一页                 self.driver.find_element(By.XPATH, //*[idJ_bottomPage]/span[1]/a[9]).click()                 time.sleep(1)             else:                 self.driver.quit()                 break 3.4 完整代码 import time from selenium import webdriver from selenium.webdriver.common.by import By class JDSpider:     def __init__(self):         # 设置为无界面        self.options webdriver.ChromeOptions()  # 创建浏览器对象之前创建options功能对象         self.options.add_argument(--headless)  # 添加无界面功能参数         self.driver webdriver.Chrome(optionsself.options)  # 构造浏览器对象打开浏览器         self.driver.get(urlhttp://www.jd.com/)  # 进入主页         # 搜索框发送python书籍点击搜索按钮         self.inputJD self.driver.find_element(By.XPATH, //*[idkey])  # 搜索框xpath://*[idkey]         self.inputJD.send_keys(python书籍)         self.driver.find_element(By.XPATH,                                  //*[idsearch]/div/div[2]/button).click()  # 搜索按钮xpath//*[idsearch]/div/div[2]/button 并点击         time.sleep(1)  # 要给页面元素加载预留时间 def parse_html(self):                 function:  具体提取数据方法               in:  None              out:  None           return:  None           others:  Data Extraction Func                 self.driver.execute_script(             window.scrollTo(0,document.body.scrollHeight)         )  # 先把滚动条拉到最底部等待所有商品加载完成再进行数据爬取         time.sleep(3)  # 给页面元素加载预留时间         # 具体提取数据         li_list self.driver.find_elements(By.XPATH,                                             //*[idJ_goodsList]/ul/li)  # 基准xpath//*[idJ_goodsList]/ul/li 每一个商品对应一个li节点         item {}  # 定义一个空字典         for li in li_list:             item[名称] li.find_element(By.XPATH, .//div[classp-name]/a/em).text.strip()             item[价格] li.find_element(By.XPATH, .//div[classp-price]/strong).text.strip()             item[评价] li.find_element(By.XPATH, .//div[classp-commit]/strong).text.strip()             item[商家] li.find_element(By.XPATH, .//div[classp-shopnum]).text.strip()             print(item)  # 打印 def run(self):                 function:  程序入口函数               in:  None              out:  None           return:  None           others:  Program Entry Func                 while True:             self.parse_html()             # 不是最后一页pn-next             # 最后一页pn-next disabled             if self.driver.page_source.find(pn-next disabled) -1:  # 没有找到 pn-next disabled说明不是最后一页                 self.driver.find_element(By.XPATH, //*[idJ_bottomPage]/span[1]/a[9]).click()                 time.sleep(1)             else:                 self.driver.quit()                 break if __name__ __main__:     spider JDSpider()     spider.run() 3.5 实现效果
http://www.w-s-a.com/news/575195/

相关文章:

  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台
  • 建公司网站的详细步骤关于进一步加强网站建设
  • 丰宁县有做网站的吗?维护一个网站一年多少钱
  • 杭州网站设计渠道wordpress购物主题
  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司
  • 基础微网站开发咨询中国印花图案设计网站
  • 找最新游戏做视频网站天津市招标投标公共服务平台