资源简介
# 一个使用selemium爬取小说的代码
理论上使用selemium可以爬取任何站点的资源.可以说是万能的网络爬虫了.这里是演示代码,业务逻辑请自己实现.
也可以用来做Web程序的自动化测试.

代码片段和文件信息
# -*- coding: utf-8 -*-
import os
import sys
__project_dir__ = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if __project_dir__ not in sys.path:
sys.path.append(__project_dir__)
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.select import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium.webdriver import FirefoxProfile
from selenium.webdriver import FirefoxOptions
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.webdriver import FirefoxWebElement
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver import ChromeOptions
from mail_module import send_mail
from log_module import get_logger
from selenium.webdriver import Chrome
import time
import datetime
“““
https://chromedriver.storage.googleapis.com/index.html?path=2.35/
你也可以自行搜索chromedriver的下载地址解压是个可执行文件放到chrome的目录即可.
一般ubuntu下面chrome的目录是/opt/google/chrome/
“““
logger = get_logger()
# chrome_driver = “/opt/google/chrome/chromedriver“ # chromedriver的路径
chrome_driver = os.path.join(__project_dir__ “resource/chromedriver“) # chromedriver的路径
firefox_driver = os.path.join(__project_dir__ “resource/geckodriver“) # firfoxdriver的路径
os.environ[“ChromeDriver“] = chrome_driver # 必须配置否则会在execute_script的时候报错.
# browser = webdriver.Chrome(chrome_driver)
# wait = WebDriverWait(browser 10)
def get_browser(headless: bool = True browser_class: int = 1) -> Firefox:
“““
获取一个浏览器
:param headless:
:param browser_class: 浏览器种类0是谷歌 1 是火狐 服务器端不能使用谷歌
:return:
“““
“““
firefox的headless浏览器
因为headless的浏览器的语言跟随操作系统为了保证爬回来的数据是正确的语言
这里必须设置浏览器的初始化参数
注意,使用headless必须先安装对应浏览器正常的版本然后再安装headless版本
比如火狐的headless
下载火狐的geckodriver驱动。(当前文件夹下已经有一个了)地址是:
https://github.com/mozilla/geckodriver/releases
下载后解压是一个geckodriver 文件。拷贝到/usr/local/bin目录下,然后加上可执行的权限
sudo chmod +x /usr/local/bin/geckodriver
chrome的headless浏览器
https://chromedriver.storage.googleapis.com/index.html?path=2.35/
你也可以自行搜索chromedriver的下载地址解压是个可执行文件放到chrome的目录即可.
一般ubuntu下面chrome的目录是/opt/google/chrome/
据说使用root权限运行的话chrome的headless浏览器会报异常.而firefox的headless浏览器不会!
“““
if browser_class == 1:
profile = FirefoxProfile()
profile.set_preference(“intl.accept_languages“ “zh-cn“)
options = FirefoxOptions()
options.add_argument(“--headless“)
if headless:
try:
browser = Firefox(firefox_profile=profile executable_path=firefox_driver firefox_options=options)
except Exception as e:
title = “{} Firefox headless浏览器打开失败“.format(datetime.datetime.now())
content = “错误原因是:{}“.format(e)
send_mail(title=title content=content)
logger.exception(e)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-30 01:45 selenium爬虫演示代码\
文件 237 2018-10-30 01:45 selenium爬虫演示代码\readme.md
目录 0 2018-10-23 07:25 selenium爬虫演示代码\resource\
文件 8103592 2018-05-29 15:44 selenium爬虫演示代码\resource\chromedriver
文件 12212417 2018-10-04 13:18 selenium爬虫演示代码\resource\geckodriver
文件 10911 2018-10-30 01:42 selenium爬虫演示代码\browser_module.py
相关资源
- 很好用的网站前端页面爬取工具
- 爬取豆瓣电影TOP250程序,包含非常详
- Web Scraper 爬虫 网页抓取 Chrome插件
- 爬取新浪微博上的妹纸照片的爬虫程
- 中国行政区划到村总.txt
- Lucene(搜索)Demo
-
Selenium使用Pageob
ject模式测试登陆页 - chromedriver
- chromedriver_2.38
- 机械主题爬虫的设计与实现
- 模拟登录一些常见的网站
- NBA数据爬虫
- Chrome插件-XPath Helper 完成Bing每日壁纸
- 读秀包库全文器.zip
- 微博图片爬虫exe
- 网络爬虫的设计与实现-毕业设计毕业
- 天气数据爬虫与可视化分析
- chromedriver_win32_86.0.4240.22.zip
- 百度图片搜索-爬虫批量高清大图
- 网络爬虫--用来提取网页内容和URL的程
- 毕业论文_软件测试技术的研究和自动
- 基于.net开发的网络爬虫
- Jsoup网络爬虫
- TeleportUltra中文破解版
- 网页爬虫 非常实用工具
- 2018电影票房分析numpypandasmatplotlib
- 关于爬虫如何做js逆向的思路
- 分布式爬虫
- 自动爬取百度谷歌图片
- mozilla-geckodriver-v0.19.1-win64
评论
共有 条评论