0
我正在構建一個scrapy蜘蛛,用於檢查網上商店中是否有某些產品的庫存。從PHP/Delphi調用scrapy參考列表
這個想法是從PHP/Delphi代碼中調用這個蜘蛛,傳遞一個產品列表(3500個參考文獻)。然後,蜘蛛會返回另一個包含股票信息的列表。
這是我的蜘蛛:
import scrapy
from scrapy.crawler import CrawlerProcess
class Spider(scrapy.Spider):
name = "Spider"
start_urls = ['https://www.url.net/Administration/Account/Login']
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'UserName': 'username', 'Password': 'password'},
callback=self.after_login
)
def after_login(self, response):
yield scrapy.Request(url="https://www.url.net/Home/Home/ShowPriceDetail?articleNo=" + REFERENCE, callback=self.parse_stock)
def parse_stock(self, response):
print("STOCK" + response.selector.xpath('//*[@id="priceDetails"]/form/div[8]/div[1]/span/span[2]/text()').extract_first())
print("Date" + response.selector.xpath('//*[@id="priceDetails"]/form/div[8]/div[1]/span/span[1]/i/@style').extract_first())
所以...什麼是這樣做的正確方法?我知道,你可以傳遞參數使用類似蜘蛛:
def __init__(self, product=None, *args, **kwargs):
super(Spider, self).__init__(*args, **kwargs)
而且我知道,你可以從另一個Python腳本CrawlerProcess執行蜘蛛。另外,我知道,你可以使用從PHP調用一個python腳本:
<?php
$command = escapeshellcmd('/home/myscript.py');
$output = shell_exec($command);
echo $output;
?>
但我不知道如何合併所有這些方法...提前
感謝。
謝謝您的回答Granitosaurus。我喜歡這個主意。我有另一個問題,也許你知道答案:) http://stackoverflow.com/questions/42416020/scrapy-performance 謝謝! –