私は、オンラインWebショップにいくつかの製品の在庫があるかどうかを調べるスクラピースパイダーを構築しています。参照リスト付きPHP/Delphiからの呼び出しの処理
アイデアは、このスパイダーを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)
そして、私はあなたがCrawlerProcessで別のPythonスクリプトからクモを実行できることを知っている:私はあなたのようなものを使用してクモに引数を渡すことができることを知っています。また、私はあなたが使用してPHPからPythonスクリプトを呼び出すことができることを知っている:
<?php
$command = escapeshellcmd('/home/myscript.py');
$output = shell_exec($command);
echo $output;
?>
しかし、私は...この方法のすべてをマージする方法を事前に
感謝を知りません。
ありがとう:
私たちのようなものを使用します。私たちは、このJSONを持っている場合たとえば
。私はその考えが好きです。私は別の質問があります。答えがわかっているかもしれません:) http://stackoverflow.com/questions/42416020/scrapy-performance ありがとう! –