Commit Graph

83 Commits

Author SHA1 Message Date
Elendil 85fc6f0776 defect fix 2018-07-10 23:40:20 +08:00
Elendil 2703e6d174 refactor zookeeper config provider
Also use a more elegent way to exit in memory Nscrapy Crawl mode
2018-07-09 23:42:03 +08:00
Elendil 46086ffaf9 ConfigProvider update
Create a ConifgProviderFactory so thay we can get ConfigProvider from a single point
Also enhenced the logic of refresh config, right now when zookeeper watcher dected the config is changed
NScrapy will update its context, and during that time, NScrapy will lock the access to the Connection of Redis
2018-07-04 23:31:44 +08:00
Elendil 5a0ff77c8c ZKConfigProvider v0.1 2018-07-04 00:11:40 +08:00
Elendil c98236cf7d Merge branch 'ConfigManagement' of github.com:xboxeer/NScrapy into ConfigManagement 2018-06-29 01:36:49 +08:00
Elendil e4351fa803 Optimized ZKHelper
make create to be able to create node recursively from the path
2018-06-29 01:35:26 +08:00
Elendil 6db9cc376a Merge pull request #25 from xboxeer/master
Keep this latest brunch align with master
2018-06-28 00:27:09 +08:00
Elendil 66275a5598 POC of Zookeeper .net Client
also intergrate with ZookeeperConfigProvider
to be honest Zookeeper api is so hard to understand, why it is designed in such way?
2018-06-28 00:24:12 +08:00
Elendil 723a51ea62 Init ConfigManagement Component
Will use Zookeeper to manager the config for every node
Also changed some methed name in old design for the purpose of align naming practice
2018-06-27 01:31:28 +08:00
Elendil 6f53104ecc Update README.md 2018-06-21 22:07:32 +08:00
Elendil ec787fd5e7 Update README.md 2018-06-21 18:16:35 +08:00
Elendil 4d2e127724 Update README.md 2018-06-21 18:16:15 +08:00
Elendil 4577536ea9 Update README.md 2018-06-20 22:26:16 +08:00
Elendil 135770a8ba Merge branch 'master' of github.com:xboxeer/NScrapy 2018-06-19 00:18:38 +08:00
Elendil 1c8d81f283 Add somemore details for StatusUpdateMiddleware
The key point is LastUpdate, we can use this field to tell if the Downloader is still alive
In some cases, when Redis is doing some GC or the memory of the Host is fullfilled, DownloaderShell will exit unexcepted
2018-06-19 00:18:01 +08:00
Elendil 82a9cc5d26 Update README.md 2018-06-12 22:02:09 +08:00
Elendil 9219f689ab Update README.md 2018-06-07 00:28:24 +08:00
Elendil 871b7a0a67 Update README.md 2018-06-07 00:26:45 +08:00
Elendil 121fc50bef Update README.md 2018-06-07 00:13:59 +08:00
Elendil f58f038afb Update README.md 2018-06-07 00:10:11 +08:00
Elendil 88db9026d3 Update README.md 2018-06-07 00:08:37 +08:00
Elendil 8aea43d7fd Merge branch 'master' of github.com:xboxeer/NScrapy v0.1 2018-06-05 22:47:23 +08:00
Elendil 8d471c72b0 Fix some bugs in sample project and increase timeout limit to 10sec while Spider is getting data from Redis
The timeout should be configable in the future

Signed-off-by: Elendil <zy4182@sina.com>
2018-06-05 22:46:31 +08:00
Elendil 621ac66efd Set theme jekyll-theme-cayman 2018-06-04 15:48:33 +08:00
Elendil 3622c13fea individual downloader shell will update its downloader status to Redis
This is for the purpose of web console displaying distributed downloader status in the new future
2018-05-31 23:42:04 +08:00
Elendil 2d7be4f77d enhence the RedisScheduler
RedisScheduler will now register all the proper method in its registedCallback set at first, no need to wait until the callback is actually called
2018-05-25 01:02:08 +08:00
Elendil 32a1bf82f1 make the call back as Async, and fix bugs for ItemLoader while we are calling callback function in async way 2018-05-24 00:20:23 +08:00
Elendil 20e0982e88 ItemLoader Bug fix,CssSelector enhencement, ItemPipeline added 2018-05-22 23:50:25 +08:00
Elendil 0e36fea14d Bug Fix of ItemLoader and Add a MongoDBPipeline as Pipeline sample
Intergrate with MongoDB with MongoDB pipeline to store the information captured by NScrapy is AWESOME!
far more easy then Scrapy
2018-05-17 22:31:44 +08:00
Elendil 2219a5f87d Enhenced the ItemPipeline Field Mapping Logic
we can use Lambda to pick a property for mapping, instead of type the Field name manually
2018-05-17 00:52:00 +08:00
Elendil 7c15c702c6 ItemPipeLine first version
Enable ItemPipeline function by setting the below appsetting.json setting
"Pipelines": [
      { "Pipeline": "NScrapy.Infra.Pipeline.MockPipeline" }
    ],
there is also a mock test case for ItemPipeline
2018-05-17 00:11:59 +08:00
Elendil 8dbd6a1e2a forget to delete unused class results to build failed in Jenkins 2018-05-16 21:24:23 +08:00
Elendil c3c2d6e56b ItemLoader support field mapping for xpath selector 2018-05-16 01:41:35 +08:00
Elendil f92343e0d3 Merge pull request #16 from xboxeer/DistributedVersion
Add support for xPathSelector
2018-05-16 01:33:58 +08:00
Elendil 4afa454ebb Add support for xPathSelector
HtmlAgilityPack does not support extract attr directly, made some enhencement to xPathSelector so it can now directly extract attribute of html element like this
/html/body/div/div/div/div/ul/li[i/b="企"]/div/div/h3/a@href
2018-05-16 01:32:47 +08:00
Elendil 1be0823f08 Update README.md 2018-05-13 12:37:52 +08:00
Elendil 3d7afe7212 Update README.md 2018-05-11 18:44:20 +08:00
Elendil a38063293d Update README.md 2018-05-11 14:02:47 +08:00
Elendil 7b02f1e840 Merge pull request #15 from xboxeer/DistributedVersion
Distributed version to master
2018-05-11 01:13:36 +08:00
Elendil 1c018a39a4 Bug Fix and Add HttpPost,cookies Support 2018-05-11 01:12:33 +08:00
Elendil 245aefa502 bug fix 2018-05-10 21:33:54 +08:00
Elendil 4e61597193 Optimize the Lock/Release structure
release the lock as long as we fetched the item, instead of waiting for the call back finish
2018-05-10 21:31:07 +08:00
Elendil 00f90d9492 Change the response from Topic to Queue so that multiple Spider won't process the same response duplicate
Add lock to response pick logic
2018-05-10 02:04:54 +08:00
Elendil 267fef7b79 Merge branch 'DistributedVersion' of github.com:xboxeer/NScrapy into DistributedVersion 2018-05-09 23:01:42 +08:00
Elendil 39723a6822 Fix bug that spider in different platform unable to grap together
The issue is each request is bind to a callback fingerprint before, in different platform
say Mac and Windows, the callback fingerprint for the same method is different beacuse they have different MSIL stream
so this time in registered call back list of each spider, using callback name as key instead of callback body msil steam MD5
2018-05-09 23:01:07 +08:00
Elendil cb0804a049 Fix bug that spider in different platform unable to grap together
The issue is each request is bind to a callback fingerprint before, in different platform
say Mac and Windows, the callback fingerprint for the same method is different beacuse they have different MSIL stream
so this time in registered call back list of each spider, using callback name as key instead of callback body msil steam MD5
2018-05-09 23:00:31 +08:00
Elendil c73765d4e4 Redis Lock Added
Add a locker before getting url from receiverqueue, so that multiple downloader won't confilct
2018-05-09 22:45:49 +08:00
Elendil 542393b03f Update README.md 2018-05-09 16:55:11 +08:00
Elendil 7f365aabe5 Merge branch 'DistributedVersion' of github.com:xboxeer/NScrapy into DistributedVersion 2018-05-09 01:32:07 +08:00
Elendil 2ed341c009 Add Distributed Support for Spider
Still need some investigate against that if the spider will crawl the same page while there are multiple spider running
2018-05-09 01:30:43 +08:00