Web scraping 刮花和504超时

Web scraping 刮花和504超时,web-scraping,scrapy,scrapy-splash,Web Scraping,Scrapy,Scrapy Splash,我在windows 10上使用Scrapy with Splash,使用的是VirtualBox和Docker。我已经写了大约六个spider,它们已经工作了,但是最近我为不同站点写的两个spider返回了大量504个网关超时 启动屏幕在192.168.99.100:8050处正确显示,如果我让脚本运行,文本文件进程中的一些URL将正确显示,但它们很少。有没有办法解决这个问题 #coding=utf-8 import scrapy import datetime import urlparse

我在windows 10上使用Scrapy with Splash,使用的是
VirtualBox
Docker
。我已经写了大约六个spider,它们已经工作了,但是最近我为不同站点写的两个spider返回了大量504个网关超时

启动屏幕在
192.168.99.100:8050处正确显示,如果我让脚本运行,文本文件进程中的一些URL将正确显示,但它们很少。有没有办法解决这个问题

#coding=utf-8
import scrapy
import datetime
import urlparse
import os.path
import socket
import urllib2
import collections
import re
import io

from scrapy.loader.processors import MapCompose, Join
from scrapy.loader import ItemLoader
from scrapy.utils.markup import remove_tags
from scrapy.http import Request

from properties.items import PropertiesItem
from properties.items import ImageItem
from scrapy_splash import SplashRequest
from time import sleep
from xml.etree import ElementTree as ET

class MySpider(scrapy.Spider):
    name = 'myspider'
    allowed_domains = ["https://www.example.com"]
    start_urls = []
    root_url = 'https://www.example.com'

    products = []
    headings = [] #csv table headers
    product_id = 1

    #custom pipelines
    custom_settings = {
        'ITEM_PIPELINES': {
            'properties.pipelines.MyImagesPipeline': 0,
        #'properties.pipelines.PropertiesPipeline': 0 #comment out if use yield itemloader
        }
    }

    def __init__(self, filename=None):
        with open('/home/vagrant/properties/properties/vagrant_syslink/urls.txt') as f:
             self.start_urls = [url.strip() for url in f.readlines()]

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url, self.parse, 
                endpoint='render.html',
                args={'wait': 15}, #, 'lua_source': self.script},
                headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'},
        )

    def parse(self, response):
        ...
        ...

谢谢

您是否将crawlera与crawlera中间件一起使用?我假设你正在使用代理,因为你正在发送给renderI,我很确定我没有单独安装crawlera。Scrapy Splash现在根本不在javascript之后呈现html。它可以通过本地主机网页工作,但不能在Scrapy中工作。我正在尝试重新安装Splash。也许这也能解决504超时问题。我这里也有同样的问题。不知道出了什么问题。非常标准的设置它总是发生在相同的URL上吗?如果是,你能分享其中一个吗?否则,您不能简单地重试这些请求吗?