1

Web をクロールしようとしましたが、ページを完全にロードするには js を実行する必要があります。以下のようにミドルウェアで spynner.Browser を使用しました。問題は、クロールしようとしている Web で Cookie を有効にする必要があることです。

クッキーをスクレイピーで spynner.Browser に渡すにはどうすればよいですか?

Scrapy.request -> spynner.Browser() -> Scrapy.response

import spynner import pyquery
from scrapy.http import HtmlResponse

class WebkitDownloaderTest( object ):
    def process_request( self, request, spider ):
        browser = spynner.Browser()
        if 'Cookie' in request.headers.keys():
            browser.set_cookies(request.headers.Cookie) # is this correct?
        browser.create_webview()
        browser.set_html_parser(pyquery.PyQuery)
        browser.load(request.url, 20)
        try:
            browser.wait_load(10)
        except:
            pass
        string = browser.html
        string=string.encode('utf-8')
        renderedBody = str(string)
        browser.close()
        return HtmlResponse(request.url, 
            Cookies = browser.cookies, # is this correct?
            body=renderedBody )
4

0 に答える 0