Linux下python抓取动态网页内容

一、背景

现在大部分网站的数据都是异步加载的,直接抓取是没办法获取到你想要的数据。必须要借助浏览器(无头浏览器,下面会搭建这个环境)来加载其javascript渲染数据后,你所需要的数据这时才呈现。

二、环境搭建

1、Centos7 默认有 python2.7版本

查看命令

python --version

 因偷懒就不升级到3.x的版本了。

2、安装pip

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py

3、安装selenium模块

pip install selenium
# 查看版本号 3.141.0
pip show selenium

4、安装chrome

chrome版本安装的是96.0.4664.45,是自己下载的。需上传到自己的服务器上进行安装。

使用yum localinstall <包名>进行安装。yun localinstall能够自动解决安装依赖包问题。安装包我会到附件资源里面。

yum localinstall google-chrome-stable_current_x86_64.rpm

5、安装chrome驱动

找Chrome对应的驱动,与系统中安装的Chrome浏览器版本一致的驱动。上面安装是96.0.4664.45版本这里就安装96.0.4664.45版本的驱动。否则会出现驱动找不到的情况。

cd /usr/local/bin/
wget https://chromedriver.storage.googleapis.com/96.0.4664.45/chromedriver_linux64.zip
unzip chromedriver_linux64.zip 
rm -rf chromedriver_linux64.zip

6、python脚本

from selenium import webdriver
import time
import sys
import rand

reload(sys)
sys.setdefaultencoding("utf-8")
opt = webdriver.ChromeOptions()
#opt.add_argument('lang=zh_CN.UTF-8')
#opt.add_argument('User-Agent=Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36')
opt.add_argument('--headless')
#opt.add_argument('--no-sandbox')
#opt.add_argument('--disable-dev-shm-usage')
opt.add_argument('--disable-gpu')
#上文安装驱动的路径
driver_path = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(executable_path=driver_path,chrome_options=opt)

try:
    driver.get('https://www.baidu.com')
    minSleepTime = 8
    maxSleepTime = 12
    sleepTime = random.uniform(minSleepTime, maxSleepTime)
    #简单粗暴等待js异步加载完成
    time.sleep(sleepTime)
    print(driver.page_source)
finally:
    driver.quit()

7、资源参考

浏览器交互 | Selenium

https://chromedriver.storage.googleapis.com/index.html

Chrome for Testing availability

Google Chrome 64bit Linux版 / chrome64linux稳定版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒

相关推荐

  1. Linuxpython抓取动态网页内容

    2024-07-09 22:26:01       28 阅读
  2. Python基础12-爬虫抓取网页内容

    2024-07-09 22:26:01       61 阅读
  3. 如何使用 Selenium 和 Beautiful Soup 抓取动态内容

    2024-07-09 22:26:01       32 阅读
  4. Python网络爬虫项目开发实战:如何处理动态内容

    2024-07-09 22:26:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 22:26:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 22:26:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 22:26:01       57 阅读
  4. Python语言-面向对象

    2024-07-09 22:26:01       68 阅读

热门阅读

  1. uniapp中 uni.previewImage用法

    2024-07-09 22:26:01       25 阅读
  2. JVM专题之走进类加载

    2024-07-09 22:26:01       23 阅读
  3. 大模型/NLP/算法面试题总结

    2024-07-09 22:26:01       23 阅读
  4. 数据结构之B树

    2024-07-09 22:26:01       22 阅读
  5. 【Rust入门】猜数游戏

    2024-07-09 22:26:01       25 阅读
  6. NVIDIA H100 Tensor Core GPU摘要

    2024-07-09 22:26:01       17 阅读
  7. 释放计算潜能:Mojo模型与分布式训练的融合之道

    2024-07-09 22:26:01       19 阅读