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 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错