Hold_C 2020-08-10 15:18 采纳率: 20%
浏览 201
已采纳

scrapy + selenium 抓取不到完整的网易云页面

问题

 得到的网易云页面不完整,这是为什么啊?恳请大佬解答

爬虫代码

import scrapy
class wangyiyun_spider(scrapy.Spider):
    name = 'wy'
    def start_requests(self):
        urls=['https://music.163.com/']
        for url in urls:
            yield scrapy.Request(url=url,callback=self.parse)
    def parse(self,response):
        with open('wz.html','wb') as f:
            f.write(response.body)

MiddleWares代码

from selenium import webdriver
from scrapy.http.response.html import HtmlResponse
import time
class SeleniumParseMiddleware_req(object):
    def process_request(self,request,spider):
        url = 'https://music.163.com/'
        options= webdriver.ChromeOptions()
        options.add_argument('--log-level=3')
        brower = webdriver.Chrome(options=options)  # 实例化浏览器对象
        brower.maximize_window()  # 窗口最大化
        brower.get(url)           # 打开网页
        brower.execute_script('window.scrollTo(0,document.body.scrollHeight)')  # 下滑
        time.sleep(10)

        data = brower.page_source.encode()  # 二进制网页源码数据
        brower.close()
        brower.quit()
        response = HtmlResponse(url=url, body=data, request=request, encoding='utf-8')
        return response

class SeleniumParseMiddleware_res(object):
    def process_response(self, request, response, spider):
         return response

setting中 Middlewares已经打开

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2020-08-11 10:38
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?