千家信息网

Python爬虫实战1-解决需要爬取网页N秒后的内容的需求

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,小生博客:http://xsboke.blog.51cto.com -------谢谢您的参考,如有疑问,欢迎交流前引: 当你需要爬取的页面内容在访
千家信息网最后更新 2025年01月22日Python爬虫实战1-解决需要爬取网页N秒后的内容的需求

小生博客:http://xsboke.blog.51cto.com

                        -------谢谢您的参考,如有疑问,欢迎交流

前引:

    当你需要爬取的页面内容在访问页面5秒后才会出现,    这时使用python的requests模块就很难爬取到你想要的内容了.    requests和selenium的不同:        requests是通过模拟http请求来实现浏览网页的        selenuim是通过浏览器的API实现控制浏览器,从而达到浏览器自动化    上面说了,selenium是通过控制浏览器实现访问的,但是linux的命令行是不能打开浏览器的,    幸运的是Chrome和Firefox有一个特殊的功能headless(无头)模式.(就是wujie面模式)    通过headless模式可以实现在linux命令行控制浏览器。    接下来要实现的就是在linux命令行界面通过Chrome的headless模式,实现获取访问网页5秒后的内容

一. 环境准备

    1. 安装谷歌浏览器linux版及其依赖包.        [root@localhost ~]# wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm        [root@localhost ~]# yum localinstall google-chrome-stable_current_x86_64.rpm --nogpgcheck    2. 下载selenium连接chrome的驱动程序(要下载和chrome对应的版本).        [root@localhost ~]# google-chrome --version        Google Chrome 72.0.3626.109         [root@localhost ~]# https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_linux64.zip        [root@localhost ~]# unzip chromedriver_linux64.zip        [root@localhost ~]# chmod +x chromedrive    3.  安装python需要模块        # beautifulsoup4是一个html,xml解析器        [root@localhost ~]# pip install beautifulsoup4 selenium

二. 开始实现获取网页5秒后的数据

#!/usr/bin/env python#-*- coding:utf-8 -*-import timefrom bs4 import BeautifulSoupfrom selenium import webdriveropt = webdriver.ChromeOptions()          # 创建chrome对象opt.add_argument('--no-sandbox')          # 启用非沙盒模式,linux必填,否则会报错:(unknown error: DevToolsActivePort file doesn't exist)......opt.add_argument('--disable-gpu')          # 禁用gpu,linux部署需填,防止未知bugopt.add_argument('headless')          # 把chrome设置成wujie面模式,不论windows还是linux都可以,自动适配对应参数driver = webdriver.Chrome(executable_path=r'/root/chromedriver',options=opt)    # 指定chrome驱动程序位置和chrome选项driver.get('https://baidu.com')          # 访问网页time.sleep(5)           # 等待5秒content = driver.page_source          # 获取5秒后的页面soup = BeautifulSoup(content,features='html.parser')    # 将获取到的内容转换成BeautifulSoup对象driver.close()print(soup.body.get_text())          # 通过BeautifulSoup对象访问获取到的页面内容
浏览 浏览器 模式 内容 网页 页面 命令 对象 控制 就是 模块 程序 驱动程序 驱动 不同 特殊 幸运 接下来 位置 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mysql数据库jdbc 对网络安全法学习的建议及想法 怎么把数据库的数据分离出来 网络安全法立法的首要目标是 根据数据库的类型分类可分为 宁波海量软件开发哪个好 网络安全教育手抄报写字 易语言读取远程数据库慢 工商管理局提示与服务器断开 电子商务所使用的网络技术 如果服务器托管在厂商的话 山西统一软件开发设施有哪些 美团外卖服务器怎么重置 内网网页找不到服务器 navicat数据库基本语句 广东r740服务器经销商 网络技术开发是属于什么费用 华为二层网络技术有那些 服务器电源黄灯 软件开发方法的发展历史 防溺水网络安全平台 软件开发毕业周记 丰南区信息网络技术创造辉煌 铁头网络技术有限公司地址 微信数据库分析 提取数组中不重复的数据库 东珈网络安全专业 直播服务器装在哪个位置 哪个国家的网络技术最强 网络安全 中职组 解析
0