共计 1680 个字符,预计需要花费 5 分钟才能阅读完成。
【百度云搜寻,搜各种材料:http://www.lqkweb.com】
【搜网盘,搜各种材料:http://www.swpan.cn】
1、chrome 谷歌浏览器无界面运行
chrome 谷歌浏览器无界面运行,次要运行在 Linux 零碎,windows 零碎下不反对
chrome 谷歌浏览器无界面运行须要一个模块,pyvirtualdisplay 模块
须要先装置 pyvirtualdisplay 模块
Display(visible=0, size=(800, 600)) 设置浏览器,visible= 0 示意不显示界面,size=(800, 600) 示意浏览器尺寸
# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request,FormRequest
from selenium import webdriver # 导入 selenium 模块来操作浏览器软件
from scrapy.xlib.pydispatch import dispatcher # 信号散发器
from scrapy import signals # 信号
class PachSpider(scrapy.Spider): #定义爬虫类,必须继承 scrapy.Spider
name = 'pach' #设置爬虫名称
allowed_domains = ['www.taobao.com'] #爬取域名
def __init__(self): #初始化
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
self.browser = webdriver.Chrome(executable_path='H:/py/16/adc/adc/Firefox/chromedriver.exe') #创立谷歌浏览器对象
super(PachSpider, self).__init__() #设置能够获取上一级父类基类的,__init__办法里的对象封装值
dispatcher.connect(self.spider_closed, signals.spider_closed) #dispatcher.connect() 信号散发器,第一个参数信号触发函数,第二个参数是触发信号,signals.spider_closed 是爬虫完结信号
#运行到此处时,就会去中间件执行,RequestsChrometmiddware 中间件了
def spider_closed(self, spider): #信号触发函数
print('爬虫完结 进行爬虫')
self.browser.quit() #敞开浏览器
def start_requests(self): #起始 url 函数,会替换 start_urls
return [Request(
url='https://www.taobao.com/',
callback=self.parse
)]
def parse(self, response):
title = response.css('title::text').extract()
print(title)
留神:Linux 零碎下会呈现谬误
报错:easyprocess.EasyProcessCheckInstalledError: cmd=[‘Xvfb’, ‘-help’] OSError=[Errno 2] No such file or directory
须要两个步骤解决
1. 执行命令:sudo apt-get install xvfb 装置 xvfb 软件
2. 执行命令:pip install xvfbwrapper 装置 xvfbwrapper 模块
以下只是提到一下,后面讲的 selenium 模块操作浏览器曾经够用了
2、scrapy-splash,也是 scrapy 获取动静网页的计划,这里就不介绍了,详情:https://github.com/scrapy-plu…
3、splinter,是一个操作浏览器的模块 详情:https://github.com/cobrateam/…
正文完