对于动态数据的爬取,可以选择selenium和PhantomJS两种方式,本文选择的是PhantomJS。
网址:
1.首先第一步,对中间件的设置。
进入pipelines.py文件中:
from selenium import webdriver
from scrapy.http.response.html import HtmlResponse
from scrapy.http.response import Response
class SeleniumSpiderMiddleware(object):
def __init__(self):
self.driver = webdriver.PhantomJS()
def process_request(self ,request ,spider):
# 当引擎从调度器中取出request进行请求发送下载器之前
# 会先执行当前的爬虫中间件 ,在中间件里面使用selenium
# 请求这个request ,拿到动态网站的数据 然后将请求
# 返回给spider爬虫对象
if spider.name == 'taobao':
# 使用爬虫文件的url地址
spider.driver.get(request.url)
for x in range(1 ,12 ,2):
i = float(x) / 11
# scrollTop 从上往下的滑动距离
js = 'document.body.scrollTop=document.body.scrollHeight * %f' % i
sp