当前位置:   article > 正文

python爬虫获取的网页数据为什么要加[0-Python爬虫实战1-解决需要爬取网页N秒后的内容的需求...

python爬取内容增加条件

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

前引:

当你需要爬取的页面内容在访问页面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 time

from bs4 import BeautifulSoup

from selenium import webdriver

opt = webdriver.ChromeOptions() # 创建chrome对象

opt.add_argument('--no-sandbox') # 启用非沙盒模式,linux必填,否则会报错:(unknown error: DevToolsActivePort file doesn't exist)......

opt.add_argument('--disable-gpu') # 禁用gpu,linux部署需填,防止未知bug

opt.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对象访问获取到的页面内容

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1000904
推荐阅读
相关标签
  

闽ICP备14008679号