2020-11-24

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

前引:

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

  1. 下载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

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

这是一个 SQL 语句,用于向借阅表中插入数据。该表包含以下字段:借阅编号、读者编号、书籍编号、借阅日期、归还日期、借阅状态。每条数据表示一次借阅记录。其中借阅编号、读者编号、书籍编号、借阅日期和借阅状态是必填项,归还日期为可选项,如果借阅状态为“已还”则必须填写归还日期。 具体插入的数据如下: - 借阅编号:100001,读者编号:123413,书籍编号:0001,借阅日期:2020-11-05,归还日期:NULL,借阅状态:借阅 - 借阅编号:100002,读者编号:223411,书籍编号:0002,借阅日期:2020-9-28,归还日期:2020-10-13,借阅状态:已还 - 借阅编号:100003,读者编号:321123,书籍编号:1001,借阅日期:2020-7-01,归还日期:NULL,借阅状态:过期 - 借阅编号:100004,读者编号:321124,书籍编号:2001,借阅日期:2020-10-09,归还日期:2020-10-14,借阅状态:已还 - 借阅编号:100005,读者编号:321124,书籍编号:0001,借阅日期:2020-10-15,归还日期:NULL,借阅状态:借阅 - 借阅编号:100006,读者编号:223411,书籍编号:2001,借阅日期:2020-10-16,归还日期:NULL,借阅状态:借阅 - 借阅编号:100007,读者编号:411111,书籍编号:1002,借阅日期:2020-9-01,归还日期:2020-9-24,借阅状态:已还 - 借阅编号:100008,读者编号:411111,书籍编号:0001,借阅日期:2020-9-25,归还日期:NULL,借阅状态:借阅 - 借阅编号:100009,读者编号:411111,书籍编号:1001,借阅日期:2020-10-08,归还日期:NULL,借阅状态:借阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值