Hold_C 2020-08-10 15:06 采纳率: 20%
浏览 127
已采纳

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')       # 获得response
        return response

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

setting里的MiddleWares 已经打开了

  • 写回答

1条回答 默认 最新

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

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码