我想使用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文件。另外,如果没有创建一个项目就可能,这对于这样一个简单的任务来说似乎有些过分。
答案 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