- 逻辑:把渲染之后的对象放到spider项目文件对应的 def parse(self,response)的response中
以前(不需要渲染的网页)是Downloader创建的response→Scrapy Engine→Spiders
现在(需要渲染网页)Downloader不能用了,所以Middlewares创建response(
from scrapy.http import HtmlResponse 用HtmlResponse创建一个response)
→Scrapy Engine→Spiders
- 如何判定当前页面是否需要使用Selenium
当scrapy通过xpath无法取到内容的时候,动态网页要考虑存在渲染的情况。
假设页面上有“青岛”二字,右键“检查” 在elements中“ctrl+f”搜索看到有“青岛”二字。
右键“检查”→Network→点开“骨骼文件" (第一个)→Response→“ctrl+f”搜索没看到有“青岛”二字
右键“检查”→Network→“ctrl+f”搜索没看到有“青岛”二字
- 使用方法:在middlewares.py中把原有代码 “ctrl+?”注掉,重新写