用scrapy下载整页

时间:2016-07-06 20:54:36

标签: python web-scraping scrapy

我想使用scrapy下载整页内容。

使用硒这很容易:

import os,sys
reload(sys)  
sys.setdefaultencoding('utf8')
from selenium import webdriver


url = 'https://es.wikipedia.org/wiki/Python'

driver = webdriver.Firefox()
driver.get(url)
content = driver.page_source
with open('source','w') as output:
    output.write(content)

但是硒比scrapy慢得多。

在scrapy中这是一种简单的方法吗?

我想将每个页面的代码保存在不同的文件文本中,而不是csv或json文件。另外,如果没有创建一个项目就可能,这对于这样一个简单的任务来说似乎有些过分。

1 个答案:

答案 0 :(得分:7)

代码将下载此页面并将其保存在文件download-a-full-page-with-scrapy.html

test_scr.py

import scrapy
class TestSpider(scrapy.Spider):
    name = "test"

    start_urls = [
        "http://stackoverflow.com/questions/38233614/download-a-full-page-with-scrapy",
    ]

    def parse(self, response):
        filename = response.url.split("/")[-1] + '.html'
        with open(filename, 'wb') as f:
            f.write(response.body)

通过此命令运行scrapy

scrapy runspider test_scr.py